JetCreateTableColumnIndex4W-Funktion
Gilt für: Windows | Windows Server
Die JetCreateTableColumnIndex4W-Funktion erstellt eine Tabelle in einer Ese-Datenbank (Extensible Storage Engine) mit einem anfänglichen Satz von Indizes und einem anfänglichen Satz von Spalten aus einem Array von JET_TABLECREATE3-Strukturen. Die JET_TABLECREATE3-Struktur ermöglicht die Angabe einer Rückruffunktion.
Die JetCreateTableColumnIndex4W-Funktion wurde im Windows 8 eingeführt.
JET_ERR JET_API JetCreateTableColumnIndex4W(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE3* ptablecreate
);
Parameter
sesid
Der Datenbanksitzungskontext, der für den API-Aufruf verwendet werden soll.
Dbid
Der Datenbankbezeichner, der für den API-Aufruf verwendet werden soll.
ptablecreate
Ein Zeiger auf eine JET_TABLECREATE3 Struktur, die die zu erstellende Tabelle definiert. Weitere JET_TABLECREATE3 finden Sie unter .n.
Rückgabewert
Diese Funktion gibt den JET_ERR datentyp mit einem der in der folgenden Tabelle aufgeführten Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern (Extensible Storage Enginge) finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.
Rückgabecode |
Beschreibung |
|---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errCallbackNotResolved |
Die Rückruffunktion konnte nicht aufgelöst werden. Die DLL wurde möglicherweise nicht gefunden, oder die Funktion in der DLL wurde möglicherweise nicht gefunden. Wenn eine ausreichende Protokollierung aktiviert ist, werden im Ereignisprotokoll weitere Details angezeigt. |
JET_errCannotIndex |
Es wurde versucht, eine Escrow-Update- oder SLV-Spalte zu indizieren (beachten Sie, dass SLV-Spalten veraltet sind). |
JET_errCannotNestDDL |
Wird zurückgegeben, wenn der parameter ptablecreate- > grbit den JET_bitTableCreateTemplateTable angibt, der ptablecreate- > szTemplateTableName-Parameter jedoch auf NULL festgelegt ist. |
JET_errColumnDuplicate |
Eine Spalte ist bereits vorhanden. |
JET_errColumnNotFound |
Es wurde versucht, eine nicht vorhandene Spalte zu indizieren. Der Versuch, eine nicht vorhandene Spalte bedingt zu indizieren, kann diesen Fehler ebenfalls erzeugen. |
JET_errColumnRedundant |
Es wurde versucht, eine redundante Spalte hinzuzufügen. Es darf nicht mehr als eine Spalte für die automatische Inkrementierung vorhanden sein, und pro Tabelle darf nicht mehr als eine Versionsspalte vorhanden sein. |
JET_errDensityInvalid |
Dieser Fehler wird zurückgegeben, wenn der ulDensity-Member der JET_INDEXCREATE2-Struktur auf eine Zahl kleiner als 20 oder mehr als 100 festgelegt ist. |
JET_errDDLNotInheritable |
Gibt an, dass die Tabelle mit dem Namen im szTemplateTableName-Element der JET_TABLECREATE3-Struktur nicht als Vorlagentabelle markiert wurde (d. h., für diese Tabelle wurde JET_bitTableCreateTemplateTable Parameterwert festgelegt). |
JET_errIndexDuplicate |
Es wurde versucht, zwei identische Indizes zu definieren. |
JET_errIndexHasPrimary |
Es wurde versucht, mehrere primäre Indizes für eine Tabelle anzugeben. Eine Tabelle muss genau einen primären Index haben. Wenn kein primärer Index angegeben wird, erstellt die Datenbank-Engine transparent einen. |
JET_errIndexInvalidDef |
Es wurde eine ungültige Indexdefinition angegeben. Im Folgenden finden Sie einige mögliche Gründe für diesen Fehler:
|
JET_errIndexTuplesInvalidLimits |
Gilt für Versionen von Windows ab Windows XP. Eine JET_TUPLELIMITS-Struktur wurde angegeben, und ihre Grenzwerte werden nicht unterstützt. Weitere Informationen finden Sie im Abschnitt "Hinweise" der JET_TUPLELIMITS Struktur. |
JET_errIndexTuplesNonUniqueOnly |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex darf nicht eindeutig sein (d. h. für das Grbit-Member der JET_INDEXCREATE2-Struktur dürfen nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexUnique festgelegt sein). |
JET_errIndexTuplesOneColumnOnly |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex kann sich nur über einer einzelnen Spalte (d. h., wenn für das Grbitelement der JET_INDEXCREATE2-Struktur JET_bitIndexTuples-Wert festgelegt ist und das szKey-Element der JET_INDEXCREATE2-Struktur mehr als eine Spalte angibt). |
JET_errIndexTuplesSecondaryIndexOnly |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex darf kein primärer Index sein (d. h. das Grbit-Member der JET_INDEXCREATE2-Struktur darf nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexTuples haben). |
JET_errIndexTuplesTextColumnsOnly |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex kann nur für eine Text- oder Unicode-Spalte verwendet werden. Der Versuch, andere Spalten (z. B. binäre Spalten) zu indizieren, führt zu JET_errIndexTuplesTextColumnsOnly Antwortcode. |
JET_errIndexTuplesVarSegMacNotAllowed |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex lässt das Festlegen des cbVarSegMac-JET_INDEXCREATE2 struktur nicht zu. |
JET_errInTransaction |
Es wurde versucht, während einer Transaktion einen Index ohne Versionsinformationen zu erstellen. |
JET_errInvalidCodePage |
Der cp-Member der JET_COLUMNCREATE-Struktur wurde nicht auf eine gültige Codepage festgelegt. 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). |
JET_errInvalidColumnType |
Der Coltyp-Member der JET_COLUMNCREATE wurde nicht auf einen gültigen Spaltentyp festgelegt. |
JET_errInvalidCreateIndex |
Im Folgenden finden Sie einige Gründe, warum dieser Fehler auftreten kann:
|
JET_errInvalidgrbit |
Eine ungültige Kombination von Grbit-Membern wurde in der JET_TABLECREATE3 angegeben. Die Indexdefinition ist ungültig, da das Grbit-Member inkonsistente Werte enthält. Im Folgenden finden Sie einige mögliche Gründe:
|
JET_errInvalidLanguageId |
Eine ungültige Locale ID (LCID) wurde übergeben (entweder über den lcid-Member der JET_UNICODEINDEX-Struktur, auf den das pidxunicode-Member in der JET_INDEXCREATE2-Struktur zeigt, oder über das lcid-Feld der JET_INDEXCREATE2-Struktur). |
JET_errInvalidParameter |
Es wurde ein ungültiger Parameter angegeben. Im Folgenden finden Sie einige mögliche Gründe:
|
JET_errRecordTooBig |
Der Datensatz ist zu groß. Die Summe des cbMax-Members der JET_COLUMNCREATE-Struktur für alle festen Spalten darf einen bestimmten Wert nicht überschreiten. |
JET_errTableDuplicate |
Die Tabelle ist bereits vorhanden. |
JET_errTooManyColumns |
Es wurde versucht, der Tabelle zu viele Spalten hinzuzufügen. Eine Tabelle kann nicht mehr als JET_ccolFixedMost spalten, nicht mehr als JET_ccolVarMost Spalten variabler Länge und nicht mehr als JET_ccolTaggedMost spalten enthalten. |
JET_errUnicodeTranslationFail |
Fehler beim Versuch, eine Unicode-Spalte zu normalisieren. Dies kann dadurch verursacht werden, dass nicht mehr alle Systemressourcen verfügbar sind. |
JET_errSpaceHintsInvalid |
Ein Element der JET-Raumhinweisstruktur war nicht richtig oder umsetzbar. |
Hinweise
Die JetCreateTableColumnIndex4W-Funktion erstellt eine Tabelle mit einem anfänglichen Satz von Spalten und Indizes. Zusätzliche Spalten und Indizes können dynamisch mit den Funktionen JetAddColumn, JetDeleteColumn, JetDeleteColumn2, JetCreateIndex, JetCreateIndex2, JetCreateIndex3, JetCreateIndex4Wund JetDeleteIndex hinzugefügt und entfernt werden.
Wie bei der JetOpenTable-Funktion sollte die JetCloseTable-Funktion die Anwendung schließen, wenn die Anwendung mit der zurückgegebenen tableid fertig ist.
Anforderungen
| Anforderung | Wert |
|---|---|
Client |
Erfordert Windows 8. |
Server |
Erfordert Windows Server 2012. |
Header |
Wird in Esent.h deklariert. |
Bibliothek |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert ESENT.dll. |
Siehe auch
JET_CBTYP
JET_DBID
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_INDEXCREATE2
JET_SESID
JET_TABLEID
JET_TABLECREATE2
JET_TABLECREATE3
JET_TUPLELIMITS
JetAddColumn
JetCreateIndex
JetCreateIndex2
JetCreateIndex3
JetCreateTable
JetCreateTableColumnIndex
JetDeleteColumn
JetDeleteColumn2