Acest ghid descrie elementele de bază ale dezvoltării bazelor de date utilizând componenta TDbf (de Micha Nelissen) în Lazarus. Documentația suplimentară pentru TDbf este, de asemenea, disponibilă. Această pagină a fost creată de Tony Maro, dar și alți colaboratori sunt bineveniți!
Pentru documentația componentei TDbf în format pdf, consultați SourceForge. Este util să păstrați acest pdf și să vă referiți la el în timp ce citiți acest articol.
Ce avem nevoie
Acest document a fost scris cu versiunea Free Pascal Compiler 2.3.1 / Lazarus 0.9.23.
Pachetul DbfLaz este instalat în mod implicit.
Ce oferă TDbf
TDbf oferă acces la tabele de baze de date și dBase FoxPro pentru Lazarus (și alte IDE), având în vedere citi, scrie, crea și dBase III +, dBase IV, VII și dBase tabelul Visual FoxPro. Toate acestea se fac fără a utiliza biblioteci suplimentare sau motoare de baze de date. Doar plasați componenta TDbf pe formularul dvs. și aveți acces instantaneu la mediul bazei de date pe diferite platforme. TDbf funcționează atât pe Windows cât și pe Linux folosind Lazarus.
Cum se creează o nouă tabelă de baze de date
Din moment ce Lazarus nu are o aplicație ca "Database Desktop", trebuie să creăm o nouă bază de date în cod.
Setarea căii
O idee bună este să alocați propriul catalog pentru baza de date a aplicației. Acest lucru va simplifica backup-ul de date. Există două moduri de a configura calea. Puteți seta calea completă utilizând proprietatea FilePathFull sau puteți seta calea relativă la calea aplicației utilizând proprietatea FilePath. De exemplu, setarea "FilePath" la timpul de execuție la "data /" va utiliza datele din subdirector numai în directorul fișierului executabil. Setarea proprietății "FilePathFull" la "/ var / data /" se va plasa exact pe calea specificată, ignorând locația aplicației.
Selectarea tabelului
În mod implicit, TDbf creează tabele dBase IV. Deși acest lucru este cel mai compatibil, unele funcții de care aveți nevoie nu sunt acceptate. Pentru a susține câmpurile auto-incrementale, trebuie să folosiți ceva mai nou. Tipurile de tabele pot fi după cum urmează.
- 3 dBase III +
- 4 dBase IV
- 7 Visual dBase VII
- 25 FoxPro
Selectați tipul tabelului setând proprietatea TableLevel, respectiv.
Adăugarea câmpurilor
Crearea de câmpuri pentru noul dvs. tabel în timpul executării se realizează cel mai mult după vechiul standard al Delphi. Odată ce ați setat valorile pentru proprietățile FilePath, TableLevel și TableName, manipulați proprietatea FieldDefs pentru a determina structura. De exemplu:
Tipurile de câmpuri sunt definite ca:
- ftUnknown
- ftString
- ftSmallInt
- ftInteger
- ftWord
- ftBoolean
- ftFloat
- ftCurrency (TableLevel 25)
- ftBCD (TableLevel 25)
- ftDate
- ftTime
- ftDateTime
- ftBytes (TableLevel 25)
- ftVarBytes
- ftAutoInc (TableLevel 7 sau 25)
- ftBlob
- ftMemo
- ftGraphic
- ftFmtMemo
- ftParadoxOle
- ftDBaseOle
- ftTypedBinary
- ftCursor
- ftFixedChar
- ftWideString
- ftLargeInt
- ftADT
- ftArray
- ftReference
- ftDataSet
- ftOraBlob
- ftOraClob
- ftVariant
- ftInterface
- ftIDispatch
- ftGuid
- ftTimeStamp
- ftFMTBcd
Sunt acceptate tipuri de câmpuri dedicate
Mergem mai departe și creăm!
Odată ce ați definit câmpurile pe care doriți să le utilizați în noul dvs. tabel, puteți merge mai departe și creați un tabel:
Cum se adaugă indexuri într-un tabel
Dacă baza dvs. de date constă într-un număr mare de înregistrări, poate fi necesar să definiți indexuri pentru a efectua o căutare mai rapidă pe masă. Pentru a schimba structura indexurilor de tabel, trebuie să avem acces exclusiv la tabel - ceea ce am avea cumva prin crearea unui tabel.
Acum, trebuie doar să adăugăm indici.
Vom pune totul împreună și vom reuși.
Următorul exemplu creează un nou tabel numit "clienți" în cod. Desigur, acest lucru trebuie facut doar o singura data, dupa care OPEN masa fara a mai fi creat ;-)
Fișiere index exterioare
TDbf acceptă, de asemenea, stocarea indexurilor secundare în fișiere separate. Acest lucru vă poate ajuta dacă vă așteptați la o dimensiune foarte mare a bazei de date. Fișierele index secundare sunt create identic cu indexurile obișnuite, dar cu adăugarea extensiei de fișiere .ndx:
De fiecare dată când deschideți TDbf, trebuie să încărcați fișierul index:
De asemenea, ar trebui să se descrie indicii, inclusiv extensia:
Fisierele index pot fi ambalate cu o utilizare simpla:
Cum se atașează TDbf la componentele de acces la date
Exemplul descris mai devreme arată cum se creează programabil un nou tabel de baze de date. Utilizarea acestui tabel este mai mult decât simplă.
componenta de acces la date în Lazarus (cum ar fi TDbEdit) indică componenta TDataSource folosind proprietățile sale de „DataSource“ și „DataField“. Componenta TDataSource gestionează conexiunea dintre motorul bazei de date și componentele de acces la date. Apoi, componenta TDataSource indică componenta TDbf folosind proprietatea "DataSet". Comunicarea reamintește următoarele:
Asigurați-vă că ați setat proprietățile FILEPATH (sau FilePathFulll), TableLevel și Nume_tabelă componentei TDbf înainte de a apela
Este posibil să spunem mai multe despre bazele de date de programare în Lazăr, și am recomanda o carte buna sau doua despre programare baze de date în Delphi, a pus ca conceptele de bază sunt aceleași. Întotdeauna mă întorc la copia mea de „Delphi 2 Unleashed“, deoarece conceptele și codul de bază nu s-au schimbat timp de 8 ani.
Ambalaje si mese de reconstructie
Atunci când o înregistrare este ștearsă, ea rămâne în mod fizic în tabel. Periodic, trebuie să "împachetați" masa pentru a restabili spațiul pierdut. Acest lucru se poate face prin setarea unui mod de acces exclusiv.
Relația Master / Slave Table
Puterea reală a programării bazei de date începe atunci când aveți mai multe mese care se leagă unul de celălalt. În timp ce TDbf nu acceptă integritatea referențială, suportă reprezentarea "master / slave" între tabelele TDbf.
Să presupunem că există două tabele interdependente, de exemplu:
Dacă doriți să afișați toate facturile pentru clientul dat, tabelul subordonat (facturile) poate rămâne sincronizat automat cu tabelul principal (clienți).
Pe componentă, cheltuielile generale ale TDbf sunt stabilite după cum urmează:
Exemplu de aplicație - Browser DB
Este necesar să se ia în considerare
În prezent, nu există suport pentru integritatea referențială sau criptare în fișierele .dbf.