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 istx
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