JET_COLUMNDEF-Struktur

Gilt für: Windows | Windows Server

JET_COLUMNDEF-Struktur

Die JET_COLUMNDEF-Struktur definiert die Daten, die in einer Spalte gespeichert werden können.

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wCollate;
      unsigned long cbMax;
      JET_GRBIT grbit;
    } JET_COLUMNDEF;

Member

cbStruct

Die Größe der Struktur in Bytes. Sie muss auf sizeof( JET_COLUMNDEF) festgelegt werden.

Columnid

Reserviert. columnid muss auf 0 (null) festgelegt werden.

coltyp

Der Typ der Spalte (z. B. Text, binär oder numerisch). Weitere Informationen finden Sie unter JET_COLTYP.

wCountry

Reserviert. wCountry muss auf 0 (null) festgelegt werden.

Langid

Veraltet. langid sollte auf 0 (null) festgelegt werden.

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.

wCollate

Reserviert. wCollate muss auf 0 (null) festgelegt werden.

cbMax

Die maximale Länge einer Spalte mit variabler Länge in Bytes oder die Länge einer Spalte mit fester Länge.

grbit

Eine Gruppe von Bits, die die Optionen enthalten, die für diesen Aufruf verwendet werden sollen, die null oder mehr der folgenden Werte enthalten.

Wert

Bedeutung

JET_bitColumnFixed

Die Spalte wird behoben. Unabhängig davon, wie viele Daten in der Spalte gespeichert werden, wird immer der gleiche Speicherplatz in einer Zeile verwendet. JET_bitColumnFixed können nicht mit JET_bitColumnTagged verwendet werden. Dieses Bit kann nicht mit langen Werten (also JET_coltypLongText und JET_coltypLongBinary) verwendet werden.

JET_bitColumnTagged

Die Spalte wird markiert. Markierte Spalten belegen keinen Speicherplatz in der Datenbank, wenn sie keine Daten enthalten. Dieses Bit kann nicht mit JET_bitColumnFixed verwendet werden.

JET_bitColumnNotNULL

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

JET_bitColumnVersion

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

Dieses Bit kann nur auf JET_coltypLong Spalten angewendet werden. Dieses Bit kann nicht mit JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate oder JET_bitColumnTagged verwendet werden.

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 kontinuierlich. Wenn beispielsweise fünf Zeilen in eine Tabelle eingefügt werden, kann die Spalte "autoincrement" die Werte { 1, 2, 6, 7, 8 } enthalten. Dieses Bit kann nur für Spalten vom Typ JET_coltypLong oder JET_coltypCurrency verwendet werden.

Windows 2000: In Windows 2000 kann dieses Bit nur für Spalten vom Typ JET_coltypLong verwendet werden.

JET_bitColumnUpdatable

Dieses Bit ist nur für Aufrufe von JetGetColumnInfo gültig.

JET_bitColumnTTKey

Dieses Bit ist nur für Aufrufe von JetOpenTable gültig.

JET_bitColumnTTDescending

Dieses Bit ist nur für Aufrufe von JetOpenTempTable gültig.

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 namens itagSequence-Member identifiziert, die zu verschiedenen Strukturen gehört, einschließlich : JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN und 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. Eine Escrow-Updatespalte kann gleichzeitig von verschiedenen Sitzungen mit JetEscrowUpdate aktualisiert werden und behält die Transaktionskonsistenz bei. Eine Escrow-Updatespalte muss auch die folgenden Bedingungen erfüllen:

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

  • Eine Escrow-Updatespalte muss vom Typ JET_coltypLong sein.

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

  • JET_bitColumnEscrowUpdate können nicht in Verbindung mit JET_bitColumnTagged, JET_bitColumnVersion oder JET_bitColumnAutoincrement verwendet werden.

JET_bitColumnUnversioned

Die Spalte wird in einer ohne Versionsinformationen erstellt. Dies bedeutet, dass andere Transaktionen, die versuchen, eine Spalte mit demselben Namen hinzuzufügen, fehlschlagen. Dieses Bit ist nur mit JetAddColumn nützlich. Sie kann nicht innerhalb einer Transaktion verwendet werden.

JET_bitColumnMaybeNull

Für die zukünftige Verwendung reserviert.

JET_bitColumnFinalize

Verwenden Sie JET_bitColumnDeleteOnZero anstelle von JET_bitColumnFinalize. JET_bitColumnFinalize, dass eine Spalte abgeschlossen werden kann. Wenn eine Spalte, die abgeschlossen werden kann, über eine Escrow-Updatespalte verfügt, die null erreicht, wird die Zeile gelöscht. Zukünftige Versionen können stattdessen eine Rückruffunktion aufrufen (weitere Informationen finden Sie unter JET_CALLBACK). Eine Spalte, die abgeschlossen werden kann, muss eine Escrow-Updatespalte sein. JET_bitColumnFinalize können nicht mit JET_bitColumnUserDefinedDefault verwendet 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. Das Angeben JET_bitColumnUserDefinedDefault bedeutet, dass pvDefault auf eine JET_USERDEFINEDDEFAULT-Struktur und cbDefault auf sizeof( JET_USERDEFINEDDEFAULT ) festgelegt werden muss.

  • JET_bitColumnUserDefinedDefault können nicht in Verbindung mit JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero oder JET_bitColumnMaybeNull verwendet 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 eine Spalte, die abgeschlossen werden kann, besteht darin, sie als Verweisanzahlfeld zu verwenden, und wenn das Feld null erreicht, wird der Datensatz gelöscht. JET_bitColumnDeleteOnZero bezieht sich auf JET_bitColumnFinalize. Eine Delete-on-Zero-Spalte muss eine Escrow-Updatespalte sein. JET_bitColumnDeleteOnZero kann nicht mit JET_bitColumnFinalize verwendet werden. JET_bitColumnDeleteOnZero können nicht mit benutzerdefinierten Standardspalten verwendet werden.

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.

Weitere Informationen

JET_CALLBACK
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNID
JET_GRBIT
JET_USERDEFINEDDEFAULT
JetAddColumn
JetEscrowUpdate
JetGetTableColumnInfo
JetOpenTempTable
JetOpenTempTable2
JetOpenTempTable3
JetRenameColumn