JetCreateIndex3-Funktion
Gilt für: Windows | Windows Server
JetCreateIndex3-Funktion
Die JetCreateIndex3-Funktion erstellt Indizes für Daten in einer ESE-Datenbank, die verwendet werden können, um bestimmte Daten schnell zu finden.
Windows 7: JetCreateIndex3 wird im Windows 7-Betriebssystem eingeführt.
JET_ERR JET_API JetCreateIndex3(
__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 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_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. Der Versuch, eine nicht vorhandene Spalte bedingt indizieren zu lassen, kann auch zu diesem Fehler führen. |
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 den Empfang dieses Fehlers aufgeführt:
|
JET_errIndexTuplesInvalidLimits |
Windows XP und höhere Versionen von Windows. 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öhere Versionen von Windows. Ein Tupelindex kann nicht eindeutig sein (grbit darf nicht sowohl JET_bitIndexTuples als auch JET_bitIndexUnique festgelegt haben). |
JET_errIndexTuplesOneColumnOnly |
Windows XP und höhere Versionen von Windows. 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 |
Windows XP und höhere Versionen von Windows. Ein Tupelindex darf kein primärer Index sein (d. r. das grbit-Element der JET_INDEXCREATE2-Struktur darf nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexTuples festgelegt haben). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP und höhere Versionen von Windows. 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öhere Versionen von Windows. 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
Der Rückgabewert wird bei erfolgreicher Vervollständigung aller angegebenen Indizes JET_errSuccess.
JetCreateIndex3 durchläuft die in pindexcreate 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 fehlerr-Member der JET_INDEXCREATE2-Struktur JET_errSuccess enthält.
Anforderungen
Anforderung | Wert |
---|---|
Client |
Erfordert Windows Vista, Windows XP oder Windows 2000 Professional. |
Server |
Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server. |
Kopfzeile |
Deklariert in Esent.h. |
Bibliothek |
Verwenden Sie ESENT.lib. |
DLL |
Erfordert ESENT.dll. |
Unicode |
Implementiert als JetCreateIndex3W (Unicode) und JetCreateIndex3A (ANSI). |
Weitere Informationen
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS