JetCreateTableColumnIndex-Funktion
Letzte Änderung: Freitag, 27. Februar 2015
Gilt für: Windows | Windows Server
JetCreateTableColumnIndex-Funktion
Die JetCreateTableColumnIndex -Funktion erstellt in einer ESE-Datenbank mit einer Reihe von Indizes und einer Reihe von Spalten aus einem Array von JET_TABLECREATE Strukturen eine Tabelle. Der Name der Reihenfolge der Erstellung der Objekte JetCreateTableColumnIndex stammt. Es zuerst erstellt eine Tabelle, Spalten, und klicken Sie dann schließlich indiziert.
JET_ERR JET_API JetCreateTableColumnIndex(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE* ptablecreate
);
Parameter
sesid
Der Kontext, für den API-Aufruf zu verwendenden Datenbank Sitzung.
DBID
Die Datenbank-ID für den API-Aufruf verwenden.
ptablecreate
Ein Zeiger auf eine JET_TABLECREATE -Struktur, die die zu erstellenden Tabelle definiert. Einzelheiten finden Sie unter JET_TABLECREATE .
Return Value
Diese Funktion gibt den Datentyp JET_ERR mit einem der folgenden Rückgabecodes. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine-Fehlern und Fehler behandeln von Parametern.
Rückgabecode |
Beschreibung |
---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errCallbackNotResolved |
Die Callback-Funktion konnte nicht aufgelöst werden. Die DLL kann nicht gefunden oder die Funktion in der DLL möglicherweise nicht gefunden. Mit ausreichend Protokollierung aktiviert, wird im Ereignisprotokoll weitere Details bereitstellen. |
JET_errCannotIndex |
Es wurde versucht, über eine hinterlegten-Update oder SLV Spalte (Beachten Sie, dass SLV Spalten veraltet sind) zu indizieren. |
JET_errCannotNestDDL |
Wenn Ptablecreate -> JET_errInvalidGrbit gibt JET_bitTableCreateTemplateTable, 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. Versucht, über eine nicht vorhandene Spalte bedingt index kann auch diesen Fehler erzeugen. |
JET_errColumnRedundant |
Es wurde versucht, eine redundante Spalte hinzuzufügen. Es sollte nicht mehr als eine Autoincrement-Spalte und nicht mehr als eine Version Spalte pro Tabelle. |
JET_errDensityInvalid |
Dieser Fehler wird zurückgegeben werden, wenn das UlDensity Mitglied der JET_INDEXCREATE -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 -Member der Struktur JET_TABLECREATE nicht als Vorlagentabelle markiert wurde (d. h., diese Tabelle enthält keinen JET_bitTableCreateTemplateTable Set). |
JET_errIndexDuplicate |
So definieren Sie zwei identische Indizes es wurde versucht. |
JET_errIndexHasPrimary |
Es wurde versucht, mehr als einen einzigen Primärindex für eine Tabelle angeben. Eine Tabelle muss exakt einen primären Index verfügen. Wenn kein primärer Index angegeben wird, wird die Datenbank-Engine transparent erstellt. |
JET_errIndexInvalidDef |
Es wurde eine Ungültiger Indexdefinition angegeben. Mögliche Ursachen für diese Fehlermeldung sind:
|
JET_errIndexTuplesInvalidLimits |
Windows XP und höher. Eine Struktur JET_TUPLELIMITS angegeben wurde, und seine Grenzen werden nicht unterstützt. Finden Sie im Abschnitt "Hinweise" der Struktur JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Windows XP und höher. Ein Tupelindex kann nicht eindeutig sein (d. h., das JET_errInvalidGrbit Mitglied der JET_INDEXCREATE Struktur darf keine JET_bitIndexPrimary und JET_bitIndexUnique festlegen). |
JET_errIndexTuplesOneColumnOnly |
Windows XP und höher. Ein Tupelindex kann nur über eine einzelne Spalte sein, (d. h., wenn der JET_errInvalidGrbit Member der Struktur JET_INDEXCREATE JET_bitIndexTuples festgelegt, und das SzKey Mitglied der JET_INDEXCREATE -Struktur mehr als eine Spalte gibt). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP und höher. Ein Tupelindex kann kein Primärindex sein (d. h., das JET_errInvalidGrbit Mitglied der JET_INDEXCREATE Struktur darf keine beide JET_bitIndexPrimary und JET_bitIndexTuples festlegen). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP und höher. Ein Tupelindex kann nur für Text oder Unicode-Spalte sein. Versuch zum Indizieren von anderen Spalten (beispielsweise binäre Spalten) führt JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP und höher. Ein Tupelindex lässt keine den CbVarSegMac Member der Struktur JET_INDEXCREATE festgelegt werden soll. |
JET_errInTransaction |
Es wurde versucht, einen Index ohne Versionsinformationen in einer Transaktion erstellen. |
JET_errInvalidCodePage |
Der cp -Member der Struktur JET_COLUMNCREATE wurde nicht auf eine gültige Codepage festgelegt. Die einzige gültige Werte für Textspalten sind Englisch (1252) und Unicode (1200). Der Wert 0 bedeutet, dass der Standardwert (Englisch, 1252) verwendet. |
JET_errInvalidColumnType |
Das Coltyp Mitglied der JET_COLUMNCREATE -Struktur wurde nicht auf einen gültigen Spaltentyp festgelegt. |
JET_errInvalidCreateIndex |
Einige Gründe, dass dieser Fehler kann auftreten:
|
JET_errInvalidgrbit |
Eine ungültige Kombination von JET_errInvalidGrbit Member wurde in JET_TABLECREATE oder JET_TABLECREATE2angegeben. Die Indexdefinition ist ungültig, da das Element JET_errInvalidGrbit inkonsistente Werte enthält. Möglichen Ursachen sind:
|
JET_errInvalidLanguageId |
Eine ungültige Gebietsschema-ID (LCID) übergeben wurde (entweder über die Lcid Mitglied der JET_UNICODEINDEX -Struktur, die mit dem Pidxunicode -Element in der Struktur JET_INDEXCREATE gezeigt wird, oder Lcid -Feld der Struktur JET_INDEXCREATE ). |
JET_errInvalidParameter |
Es wurde ein ungültiger Parameter angegeben. Möglichen Ursachen sind:
|
JET_errRecordTooBig |
Der Datensatz ist zu groß. Die Summe der CbMax Mitglied der JET_COLUMNCREATE -Struktur für alle Spalten mit festen darf nicht mit einen bestimmten Wert überschreiten. |
JET_errTableDuplicate |
In der Tabelle ist bereits vorhanden. |
JET_errTooManyColumns |
Es wurde versucht, um die Tabelle zu viele Spalten hinzuzufügen. Eine Tabelle kann nicht mehr als JET_ccolFixedMost festen Spalten, nicht mehr als JET_ccolVarMost variabler Länge Spalten und nicht mehr als JET_ccolTaggedMost Spalten markiert haben. |
JET_errUnicodeTranslationFail |
Ein Unicode Column normalisieren ist ein Fehler aufgetreten. Dies kann durch Ausführen von Systemressourcen verursacht werden. |
Anmerkungen
Aufruf JetCreateTableColumnIndex ist identisch, durch den Aufruf von JetCreateTableColumnIndex2, jedes Feld in der JET_TABLECREATE2 -Struktur, die mit dem Wert im entsprechenden Feld der JET_TABLECREATE, mit den folgenden Ausnahmen:
Legen Sie JET_TABLECREATE2.cbStruct auf Sizeof (JET_TABLECREATE2)
JET_TABLECREATE2.szCallback auf NULL festgelegt wurde
JET_TABLECREATE2.cbtyp auf 0 festlegen
Einzelheiten finden Sie unter JetCreateTableColumnIndex2 .
Wie JetOpenTable, wenn die Anwendung ist mit dem zurückgegebenen Tableid, es in der Regel geschlossen werden mit JetCloseTable.
Voraussetzungen
-Client, |
Erfordert Windows Vista, Windows XP oder Windows 2000 Professional. |
Server |
WindowsServer 2008, WindowsServer 2003 oder Windows 2000 Server benötigt. |
Kopfzeile |
In Esent.h deklariert. |
Library |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert "ESENT.dll". |
Unicode |
Implementiert als JetCreateTableColumnIndexW (Unicode) und JetCreateTableColumnIndexA (ANSI). |
Siehe auch
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2