Freigeben über


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:

  • Ein Primärindex ist bedingte (d. h., der JET_errInvalidGrbit Member der Struktur JET_INDEXCREATE hat JET_bitIndexPrimary Set und cConditionalColumn Member der Struktur JET_INDEXCREATE größer als 0 (null) ist).

  • WindowsServer 2003 und höher. Versucht, einen Tupelindex mit Tupel Grenzwerte erstellen, jedoch ohne Übergabe des Ptuplelimits Members in der JET_INDEXCREATE -Struktur (d. h., das JET_errInvalidGrbit Mitglied der JET_INDEXCREATE -Struktur ist JET_bitIndexTupleLimits festgelegt, jedoch der Ptuplelimits Zeiger ist NULL).

  • In der Definition einer ungültigen Schlüssel im SzKey -Member der Struktur JET_INDEXCREATE übergeben. Eine Erläuterung der gültigen Definitionen finden Sie unter JET_INDEXCREATE .

  • Festlegen des CbVarSegMac Members in JET_INDEXCREATE größer als JET_cbPrimaryKeyMost (für eine Primärindex) oder größer als JET_cbSecondaryKeyMost (für einen sekundären Index) sein.

  • Übergeben eine ungültige Kombination für einen benutzerdefinierten Unicode-Index (eine der JET_bitIndexUnicode bit ist festgelegt im JET_errInvalidGrbit -Member JET_INDEXCREATE). Einige häufige Ursachen gehören die Pidxunicode Mitglied der JET_INDEXCREATE -Struktur ist NULL, oder die angegebene LCID der Pidxunicode Struktur ist ungültig.

  • Angeben einer Spalteninhalts mit mehreren Werten für ein Primärindex.

  • Zu viele bedingte Spalten indiziert werden soll. Der cConditionalColumn Member der Struktur JET_INDEXCREATE muss nicht größer als JET_ccolKeyMost sein.

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:

  • Der Rgindexcreate Member der Struktur JET_TABLECREATE2 wurde auf NULL festgelegt.

  • Der Rgcolumncreate Member der Struktur JET_TABLECREATE2 wurde auf NULL festgelegt.

  • Der CbStruct Member einer Struktur JET_INDEXCREATE wurde nicht auf einen gültigen Wert festgelegt.

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:

  • Ein Primärindex hatte eine ignorieren Bit angegeben (d. h., JET_bitIndexPrimary mit JET_bitIndexIgnoreNull, JET_bitIndexIgnoreAnyNull oder JET_bitIndexIgnoreFirstNull übergeben wurde).

  • Ein leerer Index NULL Member nicht ignoriert (d. h., das JET_errInvalidGrbit Mitglied der JET_INDEXCREATE -Struktur ist JET_bitIndexEmpty festgelegt, jedoch nicht über einen Satz JET_bitIndexIgnoreAnyNull).

  • In einer JET_CONDITIONALCOLUMN -Struktur mit einem ungültigen JET_errInvalidGrbit Member übergeben.

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:

  • Das Rgcolumncreate Mitglied der JET_TABLECREATE2 -Struktur ist NULL.

  • Eine der in der Rgcolumncreate -Member der Struktur JET_TABLECREATE2 angegebenen JET_COLUMNCREATE Strukturen der CbStruct -Member wurde nicht auf Sizeof (JET_COLUMNCREATE) festgelegt.

  • Das CbKey Mitglied einer JET_INDEXCREATE Struktur wird auf 0 (null) festgelegt.

  • Das CbStruct Mitglied einer JET_INDEXCREATE Struktur ist nicht auf Sizeof (JET_INDEXCREATE) festgelegt.

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