Structura fișierului tabel (

Pentru fiecare câmp de tip Varchar sau Varbinary. un bit sau un bit de "lungime variabilă" este transferat în ultimul câmp de sistem numit _NullFlags, care este un câmp ascuns și stochează starea nulă pentru toate câmpurile care pot fi nul. Dacă un câmp de tip Varchar sau Varbinary poate fi de asemenea nul, bitul de stare al null-ului este urmat de un bit cu lungime variabilă. Dacă bitul de lungime variabilă este setat la 1, înseamnă că lungimea valorii curente din câmp este scrisă în ultimul octet alocat valorii câmpului. În caz contrar, dacă acest bit este setat la 0, atunci lungimea valorii curente este egală cu lungimea câmpului.







0x01 Câmp sistem (nu este vizibil pentru utilizator)

0x02 Câmpul poate fi nul

0x04 Informația din câmp este scrisă în formă binară sau câmpul are proprietatea Binary (numai pentru câmpurile de tipul Character and Memo)

0x06 (0x02 + 0x04) Când câmpul și poate lua NULL valoare, iar câmpul de informații sunt înregistrate în format binar sau câmp tinde binar (Integer, Monedă și caracter / câmp memo)







0x0C Câmpul are proprietatea autoincrement

Dacă ați deschis în fișierul Visual tabelă FoxPro creat într-o versiune anterioară a FoxPro, sau create pe un alt sistem, Visual FoxPro nu se schimba titlul tabelului, atâta timp cât nu face aceste schimbări în structura tabelului, care nu sunt acceptate în versiunea respectivă a tabelului fișier.

De exemplu, în versiunile de FoxPro 2. x nu există, cum ar fi tipurile de date Integer sau valuta, nu a fost tipul de valori Null de sprijin, nu a existat nici binar proprietate pentru câmpurile de caractere, nu a existat nici un concept de „container bază de date“ (.dbc). Prin urmare, odată ce modificați structura tabelului creat în FoxPro 2. x, astfel încât să introduceți date care nu sunt acceptate în această versiune, tabela nu va mai corespunde formatului său. În acest caz, atât versiunea fișierului DBF, cât și structura antetului tabelului se vor schimba.

Puteți utiliza următoarea formulă pentru a calcula numărul de câmpuri dintr-un tabel:

x este poziția de început a zonei de date (conținutul de 8 până la 9 octeți din antetul tabelului)
296 - acesta este 263 (informații despre conexiunea cu containerul bazei de date) + 1 (semnul finalizării antetului tabelului) + 32 (partea antetului înainte de începutul descrierii primului câmp al tabelului)
32 este lungimea unui bloc din descrierea câmpului de tabel.







Trimiteți-le prietenilor: