JET_COLUMNBASE-Struktur

Gilt für: Windows | Windows Server

JET_COLUMNBASE-Struktur

Die JET_COLUMNBASE-Struktur beschreibt die Parameter einer Basisspalte. Die Funktionen JetGetColumnInfo und JetGetTableColumnInfo 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). Ein Wert von 0 bedeutet, dass der Standardwert verwendet wird (Englisch, 1252). Wenn es sich bei der Spalte nicht um eine Textspalte handelt, wird die Codepage automatisch auf 0 festgelegt.

wFiller

Reserviert. Legen Sie auf 0 (null) fest.

cbMax

Die maximale Länge einer Spalte mit variabler Länge in Bytes oder die tatsächliche Länge einer Spalte mit 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 unabhängig davon, wie viele Daten sie enthält, den gleichen Speicherplatz in einer Zeile. JET_bitColumnFixed können nicht mit JET_bitColumnTagged kombiniert und nicht verwendet werden, wenn der coltyp-Member auf JET_coltypLongText oder JET_coltypLongBinary festgelegt ist.

JET_bitColumnTagged

Die Spalte ist markiert und belegt nur Dann Speicherplatz in der Datenbank, wenn sie Daten enthält. JET_bitColumnTagged können nicht mit JET_bitColumnFixed, JET_bitColumnVersion oder JET_bitColumnEscrowUpdate kombiniert werden.

JET_bitColumnNotNULL

Die Spalte darf nicht auf einen NULL-Wert festgelegt werden.

JET_bitColumnNotNULL können nicht mit JET_bitColumnUserDefinedDefault kombiniert werden.

JET_bitColumnVersion

Die Spalte ist eine Versionsspalte, die die Version der Zeile angibt. Der Wert dieser Spalte beginnt bei 0 und wird bei jeder Aktualisierung der Zeile automatisch erhöht.

JET_bitColumnVersion können nur verwendet werden, wenn der coltyp-Member auf JET_coltypLong festgelegt ist und nicht mit JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate, JET_bitColumnTagged oder JET_bitColumnUserDefinedDefault kombiniert werden kann.

JET_bitColumnAutoincrement

Die Spalte wird automatisch erhöht. Die Zahl ist eine steigende Zahl und ist innerhalb einer Tabelle garantiert eindeutig. Die Zahlen sind jedoch möglicherweise nicht sequenziell. Wenn beispielsweise fünf Zeilen in eine Tabelle eingefügt werden, könnte die automatisch inkrementierte Spalte die Werte { 1, 2, 6, 7, 8 } enthalten.

JET_bitColumnAutoincrement können nur verwendet werden, wenn das Coltypelement auf JET_coltypLong oder JET_coltypCurrency festgelegt ist und nicht mit JET_bitColumnEscrowUpdate, JET_bitColumnUserDefinedDefault oder JET_bitColumnVersion kombiniert werden kann.

Windows 2000: JET_bitColumnVersion können nur verwendet werden, wenn der coltyp-Member auf JET_coltypLong festgelegt ist.

JET_bitColumnUpdatable

Gilt nur für Aufrufe von JetGetColumnInfo. JET_bitColumnUpdatable können nicht mit JET_bitColumnUserDefinedDefault kombiniert werden.

JET_bitColumnTTKey

Gilt nur für Aufrufe von JetOpenTable.

JET_bitColumnTTDescending

Gilt nur für Aufrufe von JetOpenTempTable.

JET_bitColumnMultiValued

Die Spalte kann mehrwertige Werte aufweisen. Einer mehrwertigen Spalte kann 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. Spalten mit mehreren Werten müssen markiert sein. Das heißt, es dürfen keine Spalten mit fester länge oder variabler Länge sein.

JET_bitColumnEscrowUpdate

Gibt an, dass eine Spalte eine Escrow-Updatespalte ist, die gleichzeitig von verschiedenen Sitzungen mit JetEscrowUpdate aktualisiert werden kann und transaktionskonsistenz aufweist.

  • Eine Escrow-Updatespalte kann nur erstellt werden, wenn die Tabelle leer ist.

  • Für eine Escrow-Updatespalte muss der coltyp-Member auf JET_coltypLong festgelegt werden.

  • Eine Escrow-Updatespalte muss einen Standardwert aufweisen ( also cbDefault muss positiv sein).

  • JET_bitColumnEscrowUpdate können nicht mit JET_bitColumnTagged, JET_bitColumnVersion oder JET_bitColumnAutoincrement kombiniert werden.

JET_bitColumnUnversioned

Die Spalte wird ohne Versionsnummer erstellt. Dies bedeutet, dass andere Transaktionen, die versuchen, eine Spalte mit demselben 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 können nicht mit JET_bitColumnUserDefinedDefault kombiniert werden.

JET_bitColumnFinalize

Darf nicht verwendet werden. Verwenden Sie stattdessen JET_bitColumnDeleteOnZero.

Die Spalte kann abgeschlossen werden. Eine Spalte, die abgeschlossen werden kann, ist eine Escrow-Updatespalte, die dazu führt, dass die Zeile gelöscht wird, wenn die Spalte 0 0 erreicht. Zukünftige Versionen können stattdessen eine Rückruffunktion aufrufen (siehe JET_CALLBACK). Eine Spalte, die abgeschlossen werden kann, muss eine Escrow-Updatespalte sein. JET_bitColumnFinalize können nicht mit JET_bitColumnUserDefinedDefault kombiniert werden.

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 zeigen, und cbDefault muss auf sizeof( JET_USERDEFINEDDEFAULT ) festgelegt werden.

JET_bitColumnUserDefinedDefault können nicht mit JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero oder JET_bitColumnMaybeNull kombiniert werden.

JET_bitColumnDeleteOnZero

Die Spalte ist eine Escrow-Updatespalte, und wenn sie null erreicht, wird der Datensatz gelöscht. Eine häufige Verwendung für Delete-on-Zero-Spalten ist als Verweisanzahlfelder. Wenn die Anzahl der Verweise auf null fällt, wird der Datensatz gelöscht. Eine Delete-on-Zero-Spalte muss eine Escrow-Updatespalte sein.

JET_bitColumnDeleteOnZero ersetzt JET_bitColumnFinalize.

JET_bitColumnDeleteOnZero kann 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.

Bemerkungen

JET_COLUMNBASE enthält viele 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.

Kopfzeile

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