Struktur von Tabellendateien (.DBC, .DBF, .FRX, .LBX, .MNX, .PJX, .SCX, .VCX)

Visual FoxPro speichert Daten, die verschiedene Dateitypen definieren, in Tabellen. Die folgenden Dateitypen werden als Tabellendateien gespeichert:

  • Tabelle (.DBF)
  • Datenbank (.DBC)
  • Formular (.SCX)
  • Etikett (.LBX)
  • Menü (.MNX)
  • Projekt (.PJX)
  • Bericht (.FRX)
  • Bibliothek visueller Klassen (.VCX)

Da es sich bei diesen Dateien um Tabellen handelt, können Sie sie so verwenden und durchblättern, wie dies bei .DBF-Dateien möglich ist.

Eine Tabellendatei besteht aus einem Vorspanndatensatz und Daten-Datensätzen. Der Vorspanndatensatz definiert die Struktur der Tabelle und enthält auch alle anderen mit der Tabelle zusammenhängenden Informationen. Er beginnt bei Dateiposition 0. Die Datensätze mit den Daten1 folgen dem Vorspann (in aufeinanderfolgenden Bytes) und enthalten den eigentlichen Text der Felder.

Informationen zu den Tabellenstrukturen der unterschiedlichen Dateitypen finden Sie unter Tabellenstruktur von Tabellendateien (DBC, FRX, LBX, MNX, PJX, SCX, VCX).

Die Länge eines Datensatzes (in Bytes) erhalten Sie durch Summieren der definierten Länge aller Felder. Ganzzahlen werden in Tabellendateien mit dem niedrigstwertigen Byte zuerst gespeichert.

Struktur des Vorspanndatensatzes einer Tabelle

Versatz in Bytes Beschreibung
0 Dateityp
0x02   FoxBASE
0x03   FoxBASE+/dBASE III PLUS, kein Memo
0x30   Visual FoxPro
0x43   dBASE IV SQL-Tabellendateien, kein Memo
0x63   dBASE IV SQL-Systemdateien, kein Memo
0x83   FoxBASE+/dBASE III PLUS, mit Memo
0x8B   dBASE IV mit Memo
0xCB   dBASE IV SQL-Tabellendateien, mit Memo
0xF5   FoxPro 2.x (oder früher) mit Memo
0xFB   FoxBASE
1 – 3 Letzte Aktualisierung (JJMMTT)
4 – 7 Anzahl der Datensätze in der Datei
8 – 9 Position des ersten Daten-Datensatzes
10 – 11 Länge eines Daten-Datensatzes (einschließlich Löschattribut)
12 – 27 Reserviert.
28 Tabellenattribute
0x01   Datei hat eine strukturierte CDX
0x02   Datei hat ein Memofeld
0x04   Datei ist eine Datenbank (DBC)
Beachten Sie, dass dieses Byte eine Summe
aus oben genannten Werten enthalten kann. 0x03 gibt z. B. an,
dass die Datei eine strukturierte .CDX-Datei
und ein Memofeld hat.
29 Code-Seitenmarkierung
30 – 31 Reserviert, enthält 0x00
32 - n Feld-Teildatensätze
Die Anzahl der Felder legt die Anzahl an
Feld-Teildatensätzen fest. Für jedes Feld der Tabelle gibt es einen Feld-Teildatensatz.
N+1 Vorspanndatensatz-Endzeichen (0x0D)
N+2 to n+264 Ein 263 Bytes umfassender Bereich, der die Rückverweisinformationen, also den relativen Pfad zur zugehörigen Datenbank (.DBC), enthält. Ist das erste Byte 0x00, ist die Tabelle nicht mit einer Datenbank verbunden. Datenbankdateien weisen an dieser Position deshalb immer den Wert 0x00 auf.

1 Die Daten in der Datendatei beginnen an der Position, die durch die Bytes 8 bis 9 des Vorspanndatensatzes angegeben ist. Daten-Datensätze beginnen mit einem Byte, das das Löschattribut setzt. Ist dieses Byte der ASCII-Wert für Leerzeichen (0x20), wird der Datensatz nicht gelöscht. Ist das erste Byte ein Sternchen (0x2A), wird der Datensatz gelöscht. Die Daten der Felder, die in den Feld-Teildatensätzen genannt sind, folgen auf das Löschattribut.

Struktur der Feld-Teildatensätze

Versatz in Bytes Beschreibung
0 – 10 Feldname (maximal 10 Zeichen, bei weniger als 10 Zeichen wird der Name mit Nullzeichen (0x00) aufgefüllt)
11 Feldtyp:
C   –   Zeichen
Y   –   Währung
N   –   Numerisch
F   –   Gleitkomma
D   –   Datum
T   –   DatumZeit
B   –   Double
I   –   Integer
L   –   Logisch
M   –   Memo
G   –   Objekt
C   –   Zeichen (binär)
M   –   Memo (binär)
P   –   Bild
12 – 15 Adressenversatz des Feldes im Datensatz
16 Feldlänge (in Bytes)
17 Anzahl der Dezimalstellen
18 Feldattribute
0x01    Systemspalte (für Benutzer nicht sichtbar)
0x02   Spalte kann Nullwerte enthalten
0x04   Binärspalte (nur für CHAR und MEMO)
19 – 32 Reserviert.

Informationen über die Einschränkungen hinsichtlich der Anzahl der Zeichen pro Datensatz, der Höchstzahl an Feldern usw. finden Sie unter "Kapazität von Visual FoxPro-Systemkomponenten".

Hinweise

Visual FoxPro ändert den Vorspann einer Datei, die im FoxPro 2.x-Dateiformat gespeichert wurde, nur, wenn die Datei mindestens um eine der folgenden Eigenschaften erweitert wurde:

  • Unterstützung von Nullwerten

  • Die Datentypen "DatumZeit", "Währung" und "Double" wurden hinzugefügt

  • CHAR- oder MEMO-Feld ist als binär markiert

  • Eine Tabelle wurde zu einer Datenbankdatei (.DBC) hinzugefügt

    **Tipp   **Mit der folgenden Formel können Sie die Anzahl der Felder einer Tabellendatei zurückgeben lassen: (x – 296/32). In dieser Formel ist x die Position des ersten Datensatzes (Bytes 8 bis 9 im Tabellenvorspann-Datensatz), 296 = 263 (Rückverweisinformationen) + 1 (Vorspanndatensatz-Endzeichen) + 32 (erster Feld-Teildatensatz), und 32 ist die Länge eines Feld-Teildatensatzes.

Siehe auch

Von Visual FoxPro unterstützte Codepages | Daten- und Feldtypen | Tabellenstruktur von Tabellendateien (DBC, FRX, LBX, MNX, PJX, SCX, VCX) | Kapazität von Visual FoxPro-Systemkomponenten | Prüfen auf Unterschiede in Formularen, Berichten und anderen Tabellendateien | Dateinamenerweiterungen und Dateitypen