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.

  • Eine Spalte zum Aktualisieren der Stirnrunzeln kann nur erstellt werden, wenn die Tabelle leer ist.

  • Für eine Spalte zum Aktualisieren der Stirnrunzeln muss das Coltyp-Member auf JET_coltypLong.

  • Eine Spalte zum Aktualisieren der Stirnrunzel muss über einen Standardwert verfügen (d. h. cbDefault muss positiv sein).

  • JET_bitColumnEscrowUpdate kann nicht mit JET_bitColumnTagged, JET_bitColumnVersion oder JET_bitColumnAutoincrement.

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