JetCreateTableColumnIndex2-Funktion
Gilt für: Windows | Windows Server
JetCreateTableColumnIndex2-Funktion
Die JetCreateTableColumnIndex2-Funktion erstellt eine Tabelle in einer ESE-Datenbank mit einer anfänglichen Gruppe von Indizes und einem anfänglichen Satz von Spalten aus einem Array von JET_TABLECREATE2 Strukturen. Die JET_TABLECREATE2-Struktur ermöglicht die Angabe einer Rückruffunktion.
Windows XP: JetCreateTableColumnIndex2 wird in Windows XP eingeführt.
JET_ERR JET_API JetCreateTableColumnIndex2(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE2* 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_TABLECREATE2-Struktur , die die zu erstellende Tabelle definiert. Weitere Informationen finden Sie unter JET_TABLECREATE2 .
Rückgabewert
Diese Funktion gibt den JET_ERR-Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu möglichen ESE-Fehlern finden Sie unter Erweiterbare Speichermodulfehler und Fehlerbehandlungsparameter.
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 nicht gefunden. Wenn genügend Protokollierung aktiviert ist, enthält das Ereignisprotokoll weitere Details. |
JET_errCannotIndex |
Es wurde versucht, eine Escrow-Update- oder SLV-Spalte zu indizieren (beachten Sie, dass SLV-Spalten veraltet sind). |
JET_errCannotNestDDL |
Wenn ptablecreate-grbit> JET_bitTableCreateTemplateTable angibt, aber ptablecreate-szTemplateTableName> 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 indizieren zu lassen, kann auch zu diesem Fehler führen. |
JET_errColumnRedundant |
Es wurde versucht, eine redundante Spalte hinzuzufügen. Es sollte nicht mehr als eine Autoinkrementspalte und nicht mehr als eine Versionsspalte pro Tabelle vorhanden sein. |
JET_errDensityInvalid |
Dieser Fehler wird zurückgegeben, wenn das ulDensity-Element der JET_INDEXCREATE-Struktur auf eine Zahl kleiner als 20 oder mehr als 100 festgelegt ist. |
JET_errDDLNotInheritable |
Bedeutet, dass die Tabelle, die im Element szTemplateTableName der JET_TABLECREATE-Struktur benannt ist, nicht als Vorlagentabelle gekennzeichnet war (d.a. diese Tabelle hatte keine JET_bitTableCreateTemplateTable festgelegt). |
JET_errIndexDuplicate |
Es wurde versucht, zwei identische Indizes zu definieren. |
JET_errIndexHasPrimary |
Es wurde versucht, mehr als einen primären Index für eine Tabelle anzugeben. Eine Tabelle muss genau einen primären Index aufweisen. Wenn kein primärer Index angegeben ist, erstellt die Datenbank-Engine einen transparenten Index. |
JET_errIndexInvalidDef |
Es wurde eine ungültige Indexdefinition angegeben. Einige der möglichen Gründe für den Empfang dieses Fehlers sind:
|
JET_errIndexTuplesInvalidLimits |
Windows XP und höher. Es wurde eine JET_TUPLELIMITS-Struktur angegeben, deren Grenzwerte nicht unterstützt werden. Weitere Informationen finden Sie im Abschnitt "Hinweise" der JET_TUPLELIMITS-Struktur . |
JET_errIndexTuplesNonUniqueOnly |
Windows XP und höher. Ein Tupelindex darf nicht eindeutig sein (das heißt, das grbit-Element der JET_INDEXCREATE-Struktur darf nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexUnique festgelegt haben). |
JET_errIndexTuplesOneColumnOnly |
Windows XP und höher. Ein Tupelindex kann sich nur über einer einzelnen Spalte befinden (das heißt, wenn das grbit-Element der JET_INDEXCREATE-Struktur JET_bitIndexTuples festgelegt ist und das szKey-Element der JET_INDEXCREATE-Struktur mehr als eine Spalte angibt). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP und höher. Ein Tupelindex darf kein primärer Index sein (d. r. das grbit-Element der JET_INDEXCREATE-Struktur darf nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexTuples festgelegt haben). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP und höher. Ein Tupelindex kann sich nur in einer Text- oder Unicode-Spalte enthalten. Ein Versuch, andere Spalten (z. B. binäre Spalten) zu indizieren, führt zu JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP und höher. Ein Tupelindex lässt das Festlegen des cbVarSegMac-Members der JET_INDEXCREATE-Struktur nicht zu. |
JET_errInTransaction |
In einer Transaktion wurde versucht, einen Index ohne Versionsinformationen zu erstellen. |
JET_errInvalidCodePage |
Das cp-Element 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 |
Das Coltypelement der JET_COLUMNCREATE-Struktur wurde nicht auf einen gültigen Spaltentyp festgelegt. |
JET_errInvalidCreateIndex |
Einige der Gründe, warum dieser Fehler auftreten kann:
|
JET_errInvalidgrbit |
Eine ungültige Kombination von Grbit-Elementen wurde in JET_TABLECREATE oder JET_TABLECREATE2 angegeben. Die Indexdefinition ist ungültig, da das grbit-Element inkonsistente Werte enthält. Einige mögliche Gründe sind:
|
JET_errInvalidLanguageId |
Eine ungültige Gebietsschema-ID (LCID) wurde übergeben (entweder über das lcid-Element der JET_UNICODEINDEX-Struktur , auf das das pidxunicode-Element in der JET_INDEXCREATE-Struktur verweist, oder über das lcid-Feld der JET_INDEXCREATE-Struktur ). |
JET_errInvalidParameter |
Ein ungültiger Parameter wurde angegeben. Einige mögliche Gründe sind:
|
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 darf nicht mehr als JET_ccolFixedMost festen Spalten, nicht mehr als JET_ccolVarMost Spalten mit variabler Länge und nicht mehr als JET_ccolTaggedMost markierten Spalten enthalten. |
JET_errUnicodeTranslationFail |
Fehler beim Versuch, eine Unicode-Spalte zu normalisieren. Dies kann dadurch verursacht werden, dass die Systemressourcen knapp werden. |
Bemerkungen
Der Name JetCreateTableColumnIndex2 stammt aus der Reihenfolge der Erstellung der Objekte: Zuerst wird eine Tabelle, Spalten und schließlich Indizes erstellt. JetCreateTableColumnIndex2 erstellt eine Tabelle mit einem anfänglichen Satz von Spalten und Indizes. Zusätzliche Spalten und Indizes können mit JetAddColumn, JetDeleteColumn, JetDeleteColumn2, JetCreateIndex2, JetCreateIndex2 und JetDeleteIndex dynamisch hinzugefügt und entfernt werden.
Wie JetOpenTable sollte die Anwendung, wenn die zurückgegebene Tableid verwendet wird, normalerweise mit JetCloseTable geschlossen werden.
Anforderungen
Anforderung | Wert |
---|---|
Client |
Erfordert Windows Vista oder Windows XP. |
Server |
Erfordert Windows Server 2008 oder Windows Server 2003. |
Kopfzeile |
Deklariert in Esent.h. |
Bibliothek |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert ESENT.dll. |
Unicode |
Implementiert als JetCreateTableColumnIndex2W (Unicode) und JetCreateTableColumnIndex2A (ANSI). |
Weitere Informationen
JET_CBTYP
JET_DBID
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_SESID
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JET_TUPLELIMITS
JetAddColumn
JetCreateIndex
JetCreateIndex2
JetCreateTable
JetCreateTableColumnIndex
JetDeleteColumn
JetDeleteColumn2