aspose.info
SV

DBF - dBase Database File

Uppdaterad

Vad är DBF fil?

Filen med tillägget .dbf är en databasfil som används av en databashanteringssystemapplikation som heter dBASE. Ursprungligen namngavs dBASE-databasen som Project Vulcan; startade av Wayne Ratliff 1978. DBF-filtypen introducerades med dBASE II 1983. Den arrangerar flera dataposter med fält av Array-typ. Databasprogramvaran xBase som är pupulär på grund av dess kompatibilitet med ett brett utbud av filformat; stöder även DBF-filer.

DBF filformat

DBF-filformatet tillhör dBASE-databashanteringssystemet men det kan vara kompatibelt med xBase eller andra DBMS-program. Den ursprungliga versionen av dbf-filen bestod av en enkel tabell som kunde ha data tillagd, modifierad, raderad eller utskriven med hjälp av ASCII-teckenuppsättningen. Med tiden förbättrades .dbf och ytterligare filer lades till för att utöka funktionerna och kapaciteten i databassystemet.

I modern dBASE består en DBF-fil av en rubrik, dataposterna och EOF-markören (End of File)

  • Rubriken innehåller information om filen, såsom antalet poster och antalet typer av fält som används i posterna.
  • Dokumenten innehåller de faktiska uppgifterna.
  • Slutet på filen markeras med en enda byte, med värdet 0x1A.

Filhuvud

Layouten av filhuvudet i dBase ges i följande tabell:

ByteInnehållBetydelse
01 byteGiltig dBASE för DOS-fil; bitar 0–2 indikerar versionsnummer, bit 3 indikerar närvaron av en dBASE för DOS-memofil, bitar 4–6 indikerar närvaron av en SQL-tabell, bit 7 indikerar närvaron av en memofil (antingen dBASE m PLUS eller dBASE för DOS)
1–33 byteDatum för senaste uppdatering; formaterad som ÅÅMMDD
4–732-bitars nummerAntal poster i databasfilen
8–916-bitars nummerAntal byte i rubriken
10–1116-bitars nummerAntal byte i posten
12–132 byteReserverad; fyll med 0
141 byteFlagga som indikerar ofullständig transaktion[not 1]
151 byteKrypteringsflagga[not 2]
16–2712 byteReserverad för dBASE för DOS i en fleranvändarmiljö
281 byteProduktions .mdx-filflagga; 1 om det finns en produktions-.mdx-fil, 0 om inte
291 byteSpråkdrivrutin-ID
30–312 byteReserverad; fyll med 0
32–n [not 3][not 4]32 byte varderaarray av fältdeskriptorer (se nedan för layout av deskriptorer)
n + 11 byte0x0D som fältdeskriptorarrayterminator
  • ISMARKEDO-funktionen kontrollerar denna flagga (BEGIN TRANSACTION sätter den till 1, END TRANSACTION och ROLLBACK återställer den till 0).
  • Om denna flagga är inställd på 1 visas meddelandet Databas krypterad.
  • Det maximala antalet fält är 255.
  • n betyder den sista byten i fältdeskriptormatrisen.

Fältbeskrivningsmatris

Layout av fältbeskrivningar i dBASE:

ByteInnehållBetydelse
0–1011 byteFältnamn i ASCII (nollfyllt)
111 byteFälttyp. Tillåtna värden: C, D, F, L, M eller N (se nästa tabell för betydelser)
12–154 byteReserverad
161 byteFältlängd i binär (max 254 (0xFE)).
171 byteFältdecimalantal i binär
18–192 byteArbetsområdes-ID
201 byteExempel
21–3010 byteReserverad
311 byteProduktions MDX-fältflagga; 1 om fältet har en indextagg i produktions-MDX-filen, 0 om inte

Databasposter

Varje post börjar med en raderingsflagga (1-byte). Fält lindas in i poster utan fältavgränsare. All fältdata är ASCII. Beroende på fältets typ medför applikationen ytterligare begränsningar. Här är fälttyper i dBase:

FälttypMnemoniskVad den accepterar
CKaraktärValfri ASCII-text (utfylld med mellanslag upp till fältets längd)
DDatumSiffror och ett tecken för att separera månad, dag och år (lagras internt som 8 siffror i formatet ÅÅÅÅMMDD)
FFlytpunkt-, ., 0–9 (högerjusterad, utfylld med blanksteg)
LLogiskY, y, N, n, T, t, F, f eller ? (när oinitierad)
MMemoValfri ASCII-text (lagrad internt som 10 siffror som representerar ett .dbt-blocknummer, högerjusterad, utfylld med blanksteg)
NNumerisk-, ., 0–9 (högerjusterad, utfylld med blanksteg)

Referenser

Se även