aspose.info
DA

DBF - dBase Database Fil

Opdateret

Hvad er en DBF fil?

The file with .dbf extension is a database file used by a database management system application called dBASE. Inititally, the dBASE database was named as Project Vulcan; started by Wayne Ratliff in 1978. DBF-filtypen blev introduceret med dBASE II i 1983. Den arrangerer flere dataposter med Array-typefelter. xBase-databasesoftwaren, som er pupulær på grund af dens kompatibilitet med en lang række filformater; understøtter også DBF-filer.

DBF filformat

DBF-filformatet tilhører dBASE-databasestyringssystemet, men det kan være kompatibelt med xBase eller andre DBMS-software. Den oprindelige version af dbf-filen bestod af en simpel tabel, der kunne have tilføjet, ændret, slettet eller udskrevet data ved hjælp af ASCII-tegnsættet. Med tiden blev .dbf forbedret, og yderligere filer blev tilføjet for at øge funktionerne og mulighederne i databasesystemet.

I moderne dBASE består en DBF-fil af en header, dataposterne og EOF-markøren (End of File)

  • Headeren indeholder information om filen, såsom antallet af poster og antallet af typer felter, der bruges i posterne.
  • Optegnelserne indeholder de faktiske data.
  • Slutningen af filen er markeret med en enkelt byte, med værdien 0x1A.

Filoverskrift

Layout af filoverskrift i dBase er angivet i følgende tabel:

ByteIndholdBetydning
01 byteGyldig dBASE for DOS-fil; bit 0-2 angiver versionsnummer, bit 3 angiver tilstedeværelsen af en dBASE for DOS-memofil, bit 4-6 angiver tilstedeværelsen af en SQL-tabel, bit 7 angiver tilstedeværelsen af enhver memofil (enten dBASE m PLUS eller dBASE for DOS)
1-33 bytesDato for sidste opdatering; formateret som ÅÅMMDD
4–732-bit nummerAntal poster i databasefilen
8–916-bit nummerAntal bytes i overskriften
10–1116-bit nummerAntal bytes i posten
12–132 bytesreserveret; fyld med 0
141 byteFlag, der angiver ufuldstændig transaktion[note 1]
151 byteKrypteringsflag[note 2]
16–2712 bytesReserveret til dBASE til DOS i et flerbrugermiljø
281 byteProduktions .mdx fil flag; 1 hvis der er en produktions-.mdx-fil, 0 hvis ikke
291 byteSprog driver ID
30–312 bytesreserveret; fyld med 0
32–n [note 3][note 4]32 bytes hverrække af feltdeskriptorer (se nedenfor for layout af deskriptorer)
n + 11 byte0x0D som feltdeskriptorarrayterminator
  • ISMARKEDO-funktionen kontrollerer dette flag (BEGIN TRANSACTION sætter det til 1, END TRANSACTION og ROLLBACK nulstiller det til 0).
  • Hvis dette flag er sat til 1, vises meddelelsen Database krypteret.
  • Det maksimale antal felter er 255.
  • n betyder den sidste byte i feltbeskrivelsesarrayet.

Feltdeskriptorarray

Layout af feltbeskrivelser i dBASE:

ByteIndholdBetydning
0–1011 bytesFeltnavn i ASCII (udfyldt med nul)
111 byteFelttype. Tilladte værdier: C, D, F, L, M eller N (se næste tabel for betydninger)
12–154 bytesReserveret
161 byteFeltlængde i binær (maks. 254 (0xFE)).
171 byteFelt decimaltal i binær
18–192 bytesArbejdsområde ID
201 byteEksempel
21-3010 bytesReserveret
311 byteProduktion MDX feltflag; 1 hvis feltet har et indeksmærke i produktions-MDX-filen, 0 hvis ikke

Databaseposter

Hver post starter med et sletningsflag (1-byte). Felter pakkes ind i poster uden feltseparatorer. Alle feltdata er ASCII. Afhængigt af feltets type pålægger applikationen yderligere begrænsninger. Her er felttyper i dBase:

FelttypeMnemoniskHvad den accepterer
CKarakterEnhver ASCII-tekst (polstret med mellemrum op til feltets længde)
DDatoTal og et tegn til at adskille måned, dag og år (gemt internt som 8 cifre i formatet ÅÅÅÅMMDD)
FFlydende komma-, ., 0–9 (højrejusteret, polstret med mellemrum)
LLogiskY, y, N, n, T, t, F, f eller ? (når ikke initialiseret)
MMemoEnhver ASCII-tekst (lagret internt som 10 cifre, der repræsenterer et .dbt-bloknummer, højrejusteret, udfyldt med mellemrum)
NNumerisk-, ., 0–9 (højrejusteret, polstret med mellemrum)

Referencer

Se også