aspose.info
CS

DBF - soubor databáze dBase

Aktualizováno

Co je soubor DBF?

Soubor s příponou .dbf je databázový soubor používaný aplikací systému správy databází s názvem dBASE. Zpočátku byla databáze dBASE pojmenována jako Project Vulcan; založil Wayne Ratliff v roce 1978. Typ souboru DBF byl představen s dBASE II v roce 1983. Uspořádává více datových záznamů s poli typu Array. Databázový software xBase, který je okázalý díky své kompatibilitě s širokou škálou formátů souborů; podporuje také soubory DBF.

Formát souboru DBF

Formát souboru DBF patří do systému správy databází dBASE, ale může být kompatibilní s xBase nebo jiným DBMS softwarem. Počáteční verze souboru dbf sestávala z jednoduché tabulky, do které bylo možné přidávat, upravovat, mazat nebo tisknout data pomocí sady znaků ASCII. S postupem času byl .dbf vylepšen a byly přidány další soubory pro zvýšení funkcí a schopností databázového systému.

V moderním dBASE se soubor DBF skládá ze záhlaví, datových záznamů a značky EOF (End of File).

  • Hlavička obsahuje informace o souboru, jako je počet záznamů a počet typů polí použitých v záznamech.
  • Záznamy obsahují aktuální údaje.
  • Konec souboru je označen jedním bajtem s hodnotou 0x1A.

Záhlaví souboru

Rozložení hlavičky souboru v dBase je uvedeno v následující tabulce:

ByteObsahVýznam
01 bajtPlatné dBASE pro soubor DOS; bity 0–2 označují číslo verze, bit 3 indikují přítomnost souboru poznámky dBASE pro DOS, bity 4–6 indikují přítomnost tabulky SQL, bit 7 označuje přítomnost libovolného souboru poznámky (buď dBASE m PLUS nebo dBASE pro DOS)
1–33 bajtyDatum poslední aktualizace; ve formátu RRMMDD
4–732bitové čísloPočet záznamů v souboru databáze
8–916bitové čísloPočet bajtů v záhlaví
10–1116bitové čísloPočet bajtů v záznamu
12–132 bajtyRezervováno; vyplnit 0
141 bajtVlajka označující nedokončenou transakci[poznámka 1]
151 bajtPříznak šifrování[poznámka 2]
16–2712 bajtůVyhrazeno pro dBASE pro DOS ve víceuživatelském prostředí
281 bajtPříznak produkčního souboru .mdx; 1, pokud existuje produkční soubor .mdx, 0, pokud není
291 bajtID ovladače jazyka
30–312 bajtyRezervováno; vyplnit 0
32–n [pozn. 3][pozn. 4]32 bajtů každýpole deskriptorů polí (rozvržení deskriptorů viz níže)
n + 11 bajt0x0D jako terminátor pole deskriptoru pole
  • Funkce ISMARKEDO kontroluje tento příznak (BEGIN TRANSACTION jej nastaví na 1, END TRANSACTION a ROLLBACK jej nastaví na 0).
  • Pokud je tento příznak nastaven na 1, zobrazí se zpráva Databáze šifrována.
  • Maximální počet polí je 255.
  • n znamená poslední bajt v poli deskriptorů pole.

Pole deskriptorů pole

Rozložení deskriptorů polí v dBASE:

ByteObsahVýznam
0–1011 bajtůNázev pole v ASCII (vyplněno nulou)
111 bajtTyp pole. Povolené hodnoty: C, D, F, L, M nebo N (významy viz následující tabulka)
12–154 bajtyRezervováno
161 bajtDélka pole v binární podobě (maximálně 254 (0xFE)).
171 bajtPočet desetinných míst pole v binárním systému
18–192 bajtyID pracovní oblasti
201 bajtPříklad
21–3010 bajtůRezervováno
311 bajtPříznak produkčního pole MDX; 1, pokud má pole indexovou značku v produkčním souboru MDX, 0, pokud ne

Záznamy v databázi

Každý záznam začíná příznakem odstranění (1 bajt). Pole jsou zabalena do záznamů bez oddělovačů polí. Všechna data pole jsou ASCII. V závislosti na typu pole aplikace ukládá další omezení. Zde jsou typy polí v dBase:

Typ poleMnemotechnická pomůckaCo přijímá
CPostavaLibovolný text ASCII (vyplněný mezerami až do délky pole)
DDatumČísla a znak pro oddělení měsíce, dne a roku (interně uloženo jako 8 číslic ve formátu RRRRMMDD)
FPlovoucí desetinná čárka-, ., 0–9 (zarovnáno vpravo, doplněno mezerami)
LLogickéY, y, N, n, T, t, F, f nebo ? (při neinicializaci)
MPoznámkaLibovolný text ASCII (interně uložený jako 10 číslic představujících číslo bloku .dbt, zarovnaný vpravo, doplněný mezerami)
NČíselné-, ., 0–9 (zarovnáno vpravo, doplněno mezerami)

Reference

Viz také