JET_COLUMNBASE-Struktur
Gilt für: Windows | Windows Server
JET_COLUMNBASE-Struktur
Die JET_COLUMNBASE-Struktur beschreibt die Parameter einer Basisspalte. Die JetGetColumnInfo- und JetGetTableColumnInfo-Funktionen verwenden die JET_COLUMNBASE Struktur.
typedef struct {
unsigned long cbStruct;
JET_COLUMNID columnid;
JET_COLTYP coltyp;
unsigned short wCountry;
unsigned short langid;
unsigned short cp;
unsigned short wFiller;
unsigned long cbMax;
JET_GRBIT grbit;
tchar szBaseTableName[256];
tchar szBaseColumnName[256];
} JET_COLUMNBASE;
Member
cbStruct
Die Größe dieser Struktur in Bytes. Legen Sie cbStruct auf sizeof( JET_COLUMNBASE ) fest.
Columnid
Reserviert. Legen Sie columnid auf 0 (null) fest.
coltyp
Der Typ der Spalte (z. B. Text, binär oder numerisch). Weitere Informationen finden Sie unter JET_COLTYP.
wCountry
Reserviert. Legen Sie auf 0 (null) fest.
langid
Reserviert. Legen Sie auf 0 (null) fest.
cp
Die Codepage für die Spalte. Die einzigen gültigen Werte für Textspalten sind Englisch (1252) und Unicode (1200). Der Wert 0 bedeutet, dass der Standardwert verwendet wird (Englisch, 1252). Wenn die Spalte keine Textspalte ist, wird die Codepage automatisch auf 0 (null) festgelegt.
wFiller
Reserviert. Legen Sie auf 0 (null) fest.
cbMax
Die maximale Länge einer Spalte variabler Länge in Bytes oder die tatsächliche Länge einer Spalte fester Länge in Bytes.
grbit
Optionen für die Spalte, einschließlich null oder mehr der folgenden Werte.
Wert |
Bedeutung |
|---|---|
JET_bitColumnFixed |
Die Spalte ist fest und belegt den gleichen Speicherplatz in einer Zeile, unabhängig davon, wie viele Daten sie enthält. JET_bitColumnFixed kann nicht mit JET_bitColumnTagged kombiniert und nicht verwendet werden, wenn der Coltyp-Member auf JET_coltypLongText oder JET_coltypLongBinary. |
JET_bitColumnTagged |
Die Spalte wird nur dann markiert und belegt Speicherplatz in der Datenbank, wenn sie Daten enthält. JET_bitColumnTagged kann nicht mit JET_bitColumnFixed, JET_bitColumnVersion oder JET_bitColumnEscrowUpdate. |
JET_bitColumnNotNULL |
Die Spalte darf nicht auf einen NULL-Wert festgelegt werden. JET_bitColumnNotNULL kann nicht mit einem JET_bitColumnUserDefinedDefault. |
JET_bitColumnVersion |
Die Spalte ist eine Versionsspalte, die die Version der Zeile angibt. Der Wert dieser Spalte beginnt bei 0 (null) und wird für jede Aktualisierung der Zeile automatisch erhöht. JET_bitColumnVersion kann nur verwendet werden, wenn der Coltyp-Member auf JET_coltypLong festgelegt ist und nicht mit JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate, JET_bitColumnTagged oder JET_bitColumnUserDefinedDefault. |
JET_bitColumnAutoincrement |
Die Spalte wird automatisch erhöht. Die Zahl ist eine steigende Zahl, und es ist garantiert, dass sie innerhalb einer Tabelle eindeutig ist. Die Zahlen sind jedoch möglicherweise nicht sequenziell. Wenn beispielsweise fünf Zeilen in eine Tabelle eingefügt werden, kann die automatisch inkrementierte Spalte die Werte { 1, 2, 6, 7, 8 } enthalten. JET_bitColumnAutoincrement kann nur verwendet werden, wenn der Coltyp-Member auf JET_coltypLong oder JET_coltypCurrency festgelegt ist und nicht mit JET_bitColumnEscrowUpdate, JET_bitColumnUserDefinedDefault oder JET_bitColumnVersion. Windows 2000: JET_bitColumnVersion kann nur verwendet werden, wenn der Coltyp-Member auf JET_coltypLong. |
JET_bitColumnUpdatable |
Nur für Aufrufe von JetGetColumnInfo gültig. JET_bitColumnUpdatable kann nicht mit -JET_bitColumnUserDefinedDefault. |
JET_bitColumnTTKey |
Nur für Aufrufe von JetOpenTable gültig. |
JET_bitColumnTTDescending |
Nur für Aufrufe von JetOpenTempTable gültig. |
JET_bitColumnMultiValued |
Die Spalte kann mehrere Werte haben. Einer mehrwertigen Spalte können null, ein oder mehrere Werte zugeordnet sein. Die verschiedenen Werte in einer mehrwertigen Spalte werden durch eine Zahl im itagSequence-Member verschiedener Strukturen identifiziert, z. B. JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Mehrwertige Spalten müssen mit Tags versehen sein. Dies bedeutet, dass es sich möglicherweise nicht um Spalten fester länge oder variabler Länge handelt. |
JET_bitColumnEscrowUpdate |
Gibt an, dass es sich bei einer Spalte um eine Escrow-Updatespalte handelt, die gleichzeitig von verschiedenen Sitzungen mit JetEscrowUpdate aktualisiert werden kann und transaktionskonsistent ist.
|
JET_bitColumnUnversioned |
Die Spalte wird ohne Versionsnummer erstellt. Dies bedeutet, dass andere Transaktionen, die versuchen, eine Spalte mit dem gleichen Namen hinzuzufügen, fehlschlagen. JET_bitColumnUnversioned wird nur mit JetAddColumn verwendet. Sie kann nicht innerhalb einer Transaktion verwendet werden. |
JET_bitColumnMaybeNull |
Für die zukünftige Verwendung reserviert. JET_bitColumnMaybeNull kann nicht mit einem JET_bitColumnUserDefinedDefault. |
JET_bitColumnFinalize |
Nicht verwenden. Verwenden JET_bitColumnDeleteOnZero stattdessen . Die Spalte kann finalisiert werden. Eine Spalte, die finalisiert werden kann, ist eine Hinterlegungsaktualisierungsspalte, die bewirkt, dass die Zeile gelöscht wird, wenn die Spalte 0 (null) erreicht. Zukünftige Versionen können stattdessen eine Rückruffunktion aufrufen (siehe JET_CALLBACK). Eine Spalte, die finalisiert werden kann, muss eine Spalte für die Aktualisierung nach der Stirnrunzel sein. JET_bitColumnFinalize kann nicht mit einem JET_bitColumnUserDefinedDefault. |
JET_bitColumnUserDefinedDefault |
Der Standardwert für eine Spalte wird von einer Rückruffunktion bereitgestellt. Siehe JET_CALLBACK. Eine Spalte mit einem benutzerdefinierten Standardwert muss eine markierte Spalte sein. Wenn JET_bitColumnUserDefinedDefault angegeben wird, muss der pvDefault auf eine JET_USERDEFINEDDEFAULT-Struktur verweisen, und cbDefault muss auf sizeof( JET_USERDEFINEDDEFAULT ) festgelegt werden. JET_bitColumnUserDefinedDefault kann nicht mit JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero oder JET_bitColumnMaybeNull. |
JET_bitColumnDeleteOnZero |
Bei der Spalte handelt es sich um eine Spalte zum Aktualisieren der Stirnrunzeln, und wenn sie 0 (null) erreicht, wird der Datensatz gelöscht. Eine häufige Verwendung für Löschspalten ohne Null ist die Verwendung von Verweiszählerfeldern. Wenn die Anzahl der Verweise auf 0 (null) fällt, wird der Datensatz gelöscht. Eine Delete-on-Zero-Spalte muss eine Spalte zur Escrow-Aktualisierung sein. JET_bitColumnDeleteOnZero ersetzt JET_bitColumnFinalize. JET_bitColumnDeleteOnZero können nicht mit JET_bitColumnFinalize oder JET_bitColumnUserDefinedDefault kombiniert und nicht mit benutzerdefinierten Standardspalten verwendet werden. |
szBaseTableName
Die Tabelle, von der die aktuelle Tabelle ihre DDL erbt.
szBaseColumnName
Der Name der Spalte in der Vorlagentabelle.
Hinweise
JET_COLUMNBASE enthält einen Großteil der gleichen Informationen wie JET_COLUMNDEF, fügt jedoch Zeichenfolgenfelder hinzu, um die Basistabelle zu beschreiben (wenn eine hierarchische DDL verwendet wurde).
Anforderungen
| Anforderung | Wert |
|---|---|
Client |
Erfordert Windows Vista, Windows XP oder Windows 2000 Professional. |
Server |
Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server. |
Header |
Deklariert in Esent.h. |
Unicode |
Implementiert als JET_COLUMNBASE_W (Unicode) und JET_COLUMNBASE_A (ANSI). |
Weitere Informationen
JET_CALLBACK
JET_COLTYP
JET_COLUMNDEF
JET_COLUMNID
JET_GRBIT
JET_SESID
JET_TABLEID
JET_USERDEFINEDDEFAULT
JetGetColumnInfo
JetGetTableColumnInfo
JetRenameColumn