JET_COLUMNCREATE-Struktur

Gilt für: Windows | Windows Server

JET_COLUMNCREATE-Struktur

Die JET_COLUMNCREATE beschreibt eine Spalte, die in einer Datenbank erstellt werden soll.

    typedef struct tag_JET_COLUMNCREATE {
      unsigned long cbStruct;
      tchar* szColumnName;
      JET_COLTYP coltyp;
      unsigned long cbMax;
      JET_GRBIT grbit;
      void* pvDefault;
      unsigned long cbDefault;
      unsigned long cp;
      JET_COLUMNID columnid;
      JET_ERR err;
    } JET_COLUMNCREATE;

Member

cbStruct

Die Größe der -Struktur in Bytes. Dieses Feld muss mit sizeof( JET_COLUMNCREATE ) initialisiert werden.

szColumnName

Der Name der zu erstellenden Spalte. Der Name muss die folgenden Kriterien erfüllen:

  • Es muss weniger als JET_cbNameMost Zeichen lang sein, ohne den beendenden NULL-Wert.
  • Sie darf nur Zeichen aus den folgenden Sätzen enthalten: 0 bis 9, A bis Z, a bis z und alle anderen Interpunktionen mit Ausnahme von Ausrufezeichen ( ), Komma (,), öffnenden Klammern () und schließenden Klammern (), d. h. ASCII-Zeichen 0x20, 0x22 bis ! [ ] 0x2d, 0x2f bis 0x5a, 0x5c, 0x5d bis 0x7f.
  • Er kann nicht mit einem Leerzeichen beginnen.
  • Sie muss mindestens ein Zeichen enthalten, das kein Leerzeichen ist.

coltyp

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

cbMax

Die maximale Länge einer Spalte variabler Länge in Bytes. Die Länge der Spalte für Spalten fester Länge.

grbit

Eine Gruppe von Bits, die die Optionen für diese Struktur enthalten und null oder mehr der folgenden Werte enthalten.

Wert

Bedeutung

JET_bitColumnFixed

Die Spalte ist fest. Es wird immer die gleiche Menge an Speicherplatz in einer Zeile verwendet, unabhängig davon, wie viele Daten in der Spalte gespeichert werden. JET_bitColumnFixed kann nicht mit -JET_bitColumnTagged. Dieses Bit kann nicht mit langen Werten wie JET_coltypLongText und JET_coltypLongBinary.

JET_bitColumnTagged

Die Spalte ist markiert. Markierte Spalten nehmen keinen Speicherplatz in der Datenbank ein, wenn sie keine Daten enthalten. Dieses Bit kann nicht mit -JET_bitColumnFixed.

JET_bitColumnNotNULL

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

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 Zahl ist jedoch möglicherweise nicht fortlaufend. Wenn beispielsweise fünf Zeilen in eine Tabelle eingefügt werden, kann die Spalte für die automatische Inkrementierung die Werte { 1, 2, 6, 7, 8 } enthalten.

Windows 2000: Dieses Bit kann nur für Spalten vom Typ JET_coltypLong.

Windows Server 2003 und höher: Dieses Bit kann nur für Spalten vom Typ JET_coltypLong oder JET_coltypCurrency.

JET_bitColumnUpdatable

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

JET_bitColumnTTKey

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

JET_bitColumnTTDescending

Dieses Bit ist 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 das 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. Das bedeutet, dass es sich nicht um Spalten fester länge oder variabler Länge handelt.

JET_bitColumnEscrowUpdate

Die Spalte ist eine Spalte zum Aktualisieren der Stirnrunzeln. Eine Spalte zum Aktualisieren der Stirnrunzeln kann gleichzeitig von verschiedenen Sitzungen mit JetEscrowUpdate aktualisiert werden und die Transaktionskonsistenz erhalten.

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

  • Eine Spalte zum Aktualisieren der Stirnrunzeln muss vom Typ JET_coltypLong.

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

  • JET_bitColumnEscrowUpdate kann nicht in Verbindung mit den folgenden Konstanten verwendet werden:

    • JET_bitColumnTagged

    • JET_bitColumnVersion

    • JET_bitColumnAutoincrement

JET_bitColumnUnversioned

Die Spalte wird ohne Version erstellt. Andere Transaktionen, die versuchen, eine Spalte mit dem gleichen Namen hinzuzufügen, führen zu einem Fehler. Dieses Bit ist nur bei JetAddColumn nützlich. Sie kann nicht innerhalb einer Transaktion verwendet werden.

JET_bitColumnMaybeNull

Für die zukünftige Verwendung reserviert.

JET_bitColumnFinalize

Verwenden JET_bitColumnDeleteOnZero anstelle von JET_bitColumnFinalize. JET_bitColumnFinalize gibt an, dass eine Spalte finalisiert werden kann. Wenn eine Spalte, die finalisiert werden kann, über eine Spalte zum Aktualisieren der Hinterlegung 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 finalisiert werden kann, muss eine Spalte für die Aktualisierung nach der Stirnrunzel sein. JET_bitColumnFinalize kann nicht mit -JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

Der Standardwert für eine Spalte wird von der Rückruffunktion bereitgestellt, JET_CALLBACK. Eine Spalte mit einem benutzerdefinierten Standardwert muss eine markierte Spalte sein. pvDefault muss auf eine JET_USERDEFINEDDEFAULT-Struktur verweisen, und cbDefault muss auf sizeof( JET_USERDEFINEDDEFAULT) festgelegt werden.

JET_bitColumnUserDefinedDefault kann nicht in Verbindung mit den folgenden Konstanten verwendet werden:

  • JET_bitColumnFixed

  • JET_bitColumnNotNULL

  • JET_bitColumnVersion

  • JET_bitColumnAutoincrement

  • JET_bitColumnUpdatable

  • JET_bitColumnEscrowUpdate

  • JET_bitColumnFinalize

  • JET_bitColumnDeleteOnZero

  • 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 eine Spalte, die finalisiert werden kann, ist die Verwendung als Verweiszählerfeld, und wenn das Feld 0 (null) erreicht, wird der Datensatz gelöscht. JET_bitColumnDeleteOnZero bezieht sich auf JET_bitColumnFinalize. Eine Spalte mit dem Wert delete-on-zero muss eine Spalte zum Aktualisieren der Löschspalte sein. JET_bitColumnDeleteOnZero kann nicht mit -JET_bitColumnFinalize. JET_bitColumnDeleteOnZero kann nicht mit benutzerdefinierten Standardspalten verwendet werden.

pvDefault

Zeigt auf einen Puffer, der der Standardwert für eine Spalte ist. Die Länge des Puffers ist cbDefault. Wenn es keinen Standardwert gibt, sollte pvDefault auf NULL und cbDefault auf 0 (null) festgelegt werden. Wenn grbit JET_bitColumnUserDefinedDefault festgelegt ist, wird pvDefault als Zeiger auf eine JET_USERDEFINEDDEFAULT interpretiert. Standardwerte dürfen nicht größer als 255 Bytes sein. Wenn ein Standardwert größer als 255 Bytes ist, wird er automatisch abgeschnitten.

cbDefault

Die Größe des durch pvDefault angegebenen Puffers in Bytes.

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.

Columnid

Bei Erfolg wird der Spaltenbezeichner der neu erstellten Spalte in diesem Feld zurückübergebe. Bei einem Fehler ist der Wert nicht definiert.

Err

Das Feld err enthält den Status der Erstellung dieser Spalte. Eine Liste der wahrscheinlichen Rückgabewerte finden Sie unter JetAddColumn.

Anforderungen

| | |

Client

|

Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.

| |

Server

|

Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.

| |

Header

|

Wird in Esent.h deklariert.

| |

Unicode

|

Wird als JET_COLUMNCREATE_W (Unicode) und JET_COLUMNCREATE_A (ANSI) implementiert.

|

Weitere Informationen

JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns