ПредишенСледващото

Това ръководство обхваща основите на разработване на база данни с помощта на TDbf компонент (с Миша Nelissen) в Лазар. Допълнителни документи TDbf също на разположение. Тази страница е създадена от Тони Maro, но и други вноски, са добре дошли!

Документация TDbf компонент в PDF формат поглед на SourceForge. Полезно е да се държи по този PDF и се отнасят към него, докато четете тази статия.

Това, което трябва

Този документ е написан с версия на Free Pascal Compiler 2.3.1 / Лазар 0.9.23.

DbfLaz пакет е инсталиран по подразбиране.

Какво TDbf

TDbf осигурява достъп до база данни, таблици и DBASE FoxPro за Лазар (и други IDE), като се има предвид чете, пише, да създавате и DBASE III +, DBASE IV, VII и DBASE Visual FoxPro маса. Всичко това се прави без използването на допълнителни библиотеки или системи за бази данни. Просто поставете TDbf компонент на вашия формуляр, а вие имате незабавен достъп до околната среда на базата данни на различни платформи. TDbf работи и в двете Windows и Linux с помощта на Лазар.

Как да се създаде нова таблица на база данни

Тъй като Лазар не приложения като "Database Desktop", от които се нуждаем, за да създадете нова база данни в кода.

инсталационна пътека

Добра идея е да дадете на вашите собствени приложения за бази данни директория. Това улеснява архивиране на данни. Има две опции за задаване на пътя. Можете да зададете пълния път с помощта FilePathFull собственост, или да зададете пътя в сравнение с пътя на приложение с FilePath собственост. Така например, определяне на "FilePath" по време на изпълнение на "данни /" ще използва поддиректория с данни точно под изпълнимия файл. Създаване имоти "FilePathFull" да "/ Var / данни /" ще бъде поставен точно в определеното пътя, без да обръща внимание на мястото на приложението.

Изборът TableLevel

По подразбиране, TDbf създаде DBASE IV таблици. Въпреки че това е най-съвместими, някои функции, които може да се наложи, не се поддържат. В подкрепа на авто-прираста полета, трябва да използвате нещо по-ново. видове Таблицата може да бъде, както следва.

  • 3 DBASE III +
  • 4 DBASE IV
  • 7 Visual DBASE VII
  • 25 FoxPro

Вие избирате вида на таблица свойства TableLevel съответно.

Добавяне на полета

Създаване на полета за новия си маса по време на изпълнение до голяма степен следва старата Delphi стандарт. След като сте настроили вашите FilePath имоти, TableLevel и TableName, манипулират FieldDefs собственост, за да се определи структурата. Например:

Видовете полета са дефинирани като:

  • ftUnknown
  • ftString
  • ftSmallInt
  • ftInteger
  • ftWord
  • ftBoolean
  • ftFloat
  • ftCurrency (TableLevel 25)
  • ftBCD (TableLevel 25)
  • ftDate
  • ftTime
  • ftDateTime
  • ftBytes (TableLevel 25)
  • ftVarBytes
  • ftAutoInc (TableLevel 7 или 25)
  • ftBlob
  • ftMemo
  • ftGraphic
  • ftFmtMemo
  • ftParadoxOle
  • ftDBaseOle
  • ftTypedBinary
  • ftCursor
  • ftFixedChar
  • ftWideString
  • ftLargeInt
  • ftADT
  • ftArray
  • ftReference
  • ftDataSet
  • ftOraBlob
  • ftOraClob
  • ftVariant
  • ftInterface
  • ftIDispatch
  • ftGuid
  • ftTimeStamp
  • ftFMTBcd

Bold типа се поддържат

Давай напред и да го създадем!

След като определите полетата, които искате да използвате в новия си маса, можете да отидете напред и да се създаде таблица:

Как да добавите индекси на маса

Ако вашата база данни съдържа голям брой записи, може да се наложи да индекси, дефинирани, за да търсят по-бързо маса. За да се промени структурата на таблицата с индекс, трябва да имаме изключителен достъп до масата - които ние по някакъв начин ще трябва при създаването на една маса.

Сега, ние просто трябва да добавите индекси.

Ние я тури всички заедно и ще получите.

Следващият пример създава нова таблица "клиенти" в кода. Разбира се, това трябва да се направи само веднъж и след това просто отворете таблицата, не го създаде ;-)

Външно индекс файлове

TDbf също поддържа съхраняване на вторични индекси в отделен файл. Това може да помогне, ако много голям очакван размер на базата данни. Вторични файлове индекси са създадени почти идентичен на нормалните показатели, но с разширение ".ndx" файл:


Всеки път, когато отворите TDbf, трябва да изтеглите файла с индекс:


Също индекси трябва да бъдат споменати, включително разширяване:


Индекс файлове могат да бъдат опаковани просто така:

Как да прикачите TDbf за компоненти за достъп до данни

Примерът описано по-горе показва как да създадете нова база данни таблица програмен път. С помощта на тази маса повече от обикновено.

данни компонент достъп в Lazarus (като TDbEdit) показват TDataSource компонент използване свойствата "DataSource" и "DataField". TDataSource компонент дръжки връзката между двигателя и компонентите на бази данни достъп до данни на. След това TDataSource показва TDbf компонент, използвайки неговите качества "набор от данни". Съобщение прилича на следното:


Уверете се, че сте задали свойствата на FilePath (или FilePathFulll), TableLevel и TableName си TDbf компонент преди да се обадите


Възможно е да се каже много повече за бази данни за програмиране на Лазар, и аз препоръчвам една хубава книга или две за програмиране на базата данни в Делфи, поставени като основните понятия са едни и същи. Аз винаги се обръщат към моето копие на "Делфи 2 Unleashed", защото понятията и основен код не са се променили в продължение на 8 години.

Опаковки и възстановяването на масите

Когато един запис се изтрива, в действителност това е физическият масата. Периодично трябва да се "пакет" на масата, за възстановяване на изгубени пространство. Това може да стане с изключителен набор режим.

Съотношението на основните / подчинени маси

Истинската сила в програмирането база данни започва, когато имате няколко маси, които се обръщат един към друг. Докато TDbf не поддържа референтна цялост, тя е в подкрепа на "водач / детайл отношения" между масите TDbf.

Да предположим, че има две таблици, свързани, например:


Ако искате да се покажат всички фактури за даден клиент, таблицата с подробности (фактури) може да се синхронизира с майстор маса (клиенти) автоматично.

На фактури TDbf компонент определя, както следва:

Примерен приложение - DB Browser

трябва да се разглежда

Засега няма подкрепа за референтна цялост, или вътрешно шифровани .dbf файлове.

Подкрепете проекта - споделете линка, благодаря!