JetCreateIndex4W-Funktion
Gilt für: Windows | Windows Server
Die JetCreateIndex4W-Funktion erstellt Indizes für Daten in einer ESE-Datenbank (Extensible Storage Engine), mit der bestimmte Daten schnell gefunden werden können.
Die JetCreateIndex4W-Funktion wurde im Windows 8 Betriebssystem eingeführt.
JET_ERR JET_API JetCreateIndex4W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
Parameter
sesid
Der Datenbanksitzungskontext, der für den API-Aufruf verwendet werden soll.
tableid
Die Tabelle, für die der Index erstellt wird.
pindexcreate
Ein Array von JET_INDEXCREATE2 Strukturen, von denen jede einen zu erstellenden Index definiert.
cIndexCreate
Die Anzahl der Elemente im pindexcreate-Array .
Rückgabewert
Diese Funktion gibt den Datentyp JET_ERR mit einem der Rückgabecodes zurück, die in der folgenden Tabelle aufgeführt sind. 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_errCannotIndex |
Es wurde versucht, eine Escrow-Update- oder SLV-Spalte zu indizieren (beachten Sie, dass SLV-Spalten veraltet sind). |
JET_errColumnNotFound |
Es wurde versucht, eine nicht vorhandene Spalte zu indizieren. Ein Versuch, eine nicht vorhandene Spalte bedingt indizieren zu lassen, kann auch diesen Fehler verursachen. |
JET_errDensityInvalid |
Dieser Fehler wird zurückgegeben, wenn das ulDensity-Element der JET_INDEXCREATE2-Struktur auf eine Zahl kleiner als 20 oder größer als 100 festgelegt ist. |
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. Im Folgenden sind einige mögliche Gründe für diesen Fehler aufgeführt:
|
JET_errIndexTuplesInvalidLimits |
Gilt für Versionen von Windows ab Windows XP. 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 |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex kann nicht eindeutig sein (grbit darf nicht sowohl JET_bitIndexTuples 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 befinden (das heißt, das grbit-Element der JET_INDEXCREATE2-Struktur hat JET_bitIndexTuples festgelegt, und das szKey-Element der JET_INDEXCREATE2-Struktur gibt mehr als eine Spalte an). |
JET_errIndexTuplesSecondaryIndexOnly |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex darf kein primärer Index sein (d. a. das grbit-Element der JET_INDEXCREATE2-Struktur darf nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexTuples festgelegt haben). |
JET_errIndexTuplesTextColumnsOnly |
Gilt für Versionen von Windows ab Windows XP. 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 |
Gilt für Versionen von Windows ab Windows XP. Ein Tupelindex lässt das Festlegen des cbVarSegMac-Members der JET_INDEXCREATE2-Struktur nicht zu. |
JET_errInTransaction |
In einer Transaktion wurde versucht, einen Index ohne Versionsinformationen zu erstellen. |
JET_errInvalidgrbit |
Die Indexdefinition ist ungültig, da das grbit-Element der JET_INDEXCREATE2-Struktur inkonsistente Werte enthält. Im Folgenden sind einige mögliche Gründe aufgeführt:
Beim gleichzeitigen Erstellen mehrerer Indizes (d. a. wenn der cIndexCreate-Parameter größer als eins ist), darf keiner der Indizes eines der folgenden Bits enthalten:
|
JET_errInvalidLanguageId |
Eine ungültige Gebietsschema-ID (LCID) wurde übergeben (entweder über das lcid-Element in der JET_UNICODEINDEX-Struktur , auf das das pidxunicode-Element in der JET_INDEXCREATE2-Struktur einen Zeiger enthält, oder über das lcid-Element der JET_INDEXCREATE2-Struktur ). |
JET_errInvalidName |
Es wurde ein ungültiger Indexname angegeben. Weitere Informationen finden Sie unter JET_INDEXCREATE2 . |
JET_errInvalidParameter |
Ein ungültiger Parameter wurde an die API übergeben. Im Folgenden finden Sie einige Gründe, warum dieser Fehler zurückgegeben werden kann:
|
JET_errUnicodeTranslationFail |
Beim Normalisieren einer Unicode-Spalte ist ein Fehler aufgetreten. Dies kann dadurch verursacht werden, dass die Systemressourcen knapp werden. |
JET_errSpaceHintsInvalid |
Ein Element der JET-Raumhinweisstruktur war nicht richtig oder nicht umsetzbar. |
Bemerkungen
Die JetCreateIndex4W-Funktion durchläuft die im pindexcreate-Parameter angegebenen Indizes und wird manchmal beim ersten Fehler abgebrochen. Alle Indizes nach dem ersten Index mit einem Fehler wurden möglicherweise nicht versucht, obwohl der Fehlerelement der JET_INDEXCREATE2-Struktur JET_errSuccess enthält.
Anforderungen
Anforderung | Wert |
---|---|
Client |
Erfordert Windows 8. |
Server |
Erfordert Windows Server 2012. |
Kopfzeile |
Deklariert in Esent.h. |
Bibliothek |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert ESENT.dll. |
Siehe auch
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS