aspose.info
RO

DBF - fișierul bazei de date dBase

Actualizat

Ce este un fișier DBF?

Fișierul cu extensia .dbf este un fișier de bază de date utilizat de o aplicație de sistem de gestionare a bazelor de date numită dBASE. Inițial, baza de date dBASE a fost numită Project Vulcan; început de Wayne Ratliff în 1978. Tipul de fișier DBF a fost introdus cu dBASE II în 1983. Aranjează mai multe înregistrări de date cu câmpuri de tip Array. Software-ul de bază de date xBase, care este pupul datorită compatibilității sale cu o gamă largă de formate de fișiere; acceptă și fișierele DBF.

Format de fișier DBF

Formatul de fișier DBF aparține sistemului de management al bazei de date dBASE, dar poate fi compatibil cu xBase sau cu alte programe DBMS. Versiunea inițială a fișierului dbf a constat dintr-un tabel simplu care putea avea date adăugate, modificate, șterse sau tipărite folosind setul de caractere ASCII. Odată cu trecerea timpului, .dbf a fost îmbunătățit și au fost adăugate fișiere suplimentare pentru a crește caracteristicile și capacitățile sistemului de baze de date.

În dBASE modern, un fișier DBF constă dintr-un antet, înregistrările de date și markerul EOF (Sfârșitul fișierului).

  • Antetul conține informații despre fișier, cum ar fi numărul de înregistrări și numărul de tipuri de câmpuri utilizate în înregistrări.
  • Înregistrările conțin datele reale.
  • Sfârșitul fișierului este marcat de un singur octet, cu valoarea 0x1A.

Antetul fișierului

Aspectul antetului fișierului în dBase este prezentat în următorul tabel:

octetCuprinsÎnțeles
01 octetdBASE valid pentru fișierul DOS; biții 0–2 indică numărul versiunii, bit 3 indică prezența unui fișier memo dBASE pentru DOS, biții 4–6 indică prezența unui tabel SQL, biții 7 indică prezența oricărui fișier memo (fie dBASE m PLUS sau dBASE pentru DOS)
1–33 octețiData ultimei actualizări; formatat ca YYMMDD
4–7număr pe 32 de bițiNumărul de înregistrări din fișierul bazei de date
8–9număr pe 16 bițiNumărul de octeți din antet
10–11număr pe 16 bițiNumărul de octeți din înregistrare
12–132 octețiRezervat; umple cu 0
141 octetIndicator care indică tranzacția incompletă[nota 1]
151 octetFlag de criptare[nota 2]
16–2712 octețiRezervat pentru dBASE pentru DOS într-un mediu multi-utilizator
281 octetSteagul fișierului .mdx de producție; 1 dacă există un fișier .mdx de producție, 0 dacă nu
291 octetID driver de limbă
30–312 octețiRezervat; umple cu 0
32–n [nota 3][nota 4]32 de octeți fiecarematrice de descriptori de câmp (a se vedea mai jos pentru aspectul descriptorilor)
n + 11 octet0x0D ca terminator al matricei de descriptor de câmp
  • Funcția ISMARKEDO verifică acest flag (BEGIN TRANSACTION îl setează la 1, END TRANSACTION și ROLLBACK îl resetează la 0).
  • Dacă acest indicator este setat la 1, apare mesajul Baza de date criptată.
  • Numărul maxim de câmpuri este de 255.
  • n înseamnă ultimul octet din matricea de descriptori de câmp.

Matrice de descriptori de câmp

Aspectul descriptorilor de câmp în dBASE:

octetCuprinsÎnțeles
0–1011 octețiNumele câmpului în ASCII (complet cu zero)
111 octetTipul câmpului. Valori permise: C, D, F, L, M sau N (a se vedea tabelul următor pentru semnificații)
12–154 octețiRezervat
161 octetLungimea câmpului în binar (maximum 254 (0xFE)).
171 octetNumărarea câmpurilor zecimale în binar
18–192 octețiID zona de lucru
201 octetExemplu
21–3010 octețiRezervat
311 octetSteagul câmp MDX de producție; 1 dacă câmpul are o etichetă index în fișierul MDX de producție, 0 dacă nu

Înregistrările bazei de date

Fiecare înregistrare începe cu un steag de ștergere (1-octet). Câmpurile sunt împachetate în înregistrări fără separatori de câmp. Toate datele de câmp sunt ASCII. În funcție de tipul câmpului, aplicația impune restricții suplimentare. Iată tipurile de câmpuri în dBase:

Tip câmpMnemonicCe acceptă
CPersonajOrice text ASCII (completat cu spații până la lungimea câmpului)
DDataNumere și un caracter pentru a separa luna, ziua și anul (stocate intern ca 8 cifre în format AAAAMMZZ)
Fvirgulă flotantă-, ., 0–9 (justificat la dreapta, umplut cu spații albe)
LlogicY, y, N, n, T, t, F, f sau ? (când este neinițializată)
MMemoOrice text ASCII (stocat intern ca 10 cifre reprezentând un număr de bloc .dbt, justificat la dreapta, completat cu spații albe)
NNumeric-, ., 0–9 (justificat la dreapta, umplut cu spații albe)

Referințe

Vezi și