JetCreateIndex2-Funktion
Gilt für: Windows | Windows Server
JetCreateIndex2-Funktion
Die JetCreateIndex2-Funktion erstellt Indizes für Daten in einer ESE-Datenbank, die verwendet werden können, um bestimmte Daten schnell zu finden.
JET_ERR JET_API JetCreateIndex2(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE* 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_INDEXCREATE Strukturen, von denen jede einen zu erstellenden Index definiert.
cIndexCreate
Die Anzahl der Elemente im Array pindexcreate.
Rückgabewert
Diese Funktion gibt den JET_ERR Datentyp mit einem der folgenden Rückgabecodes zurück. Weitere Informationen zu den möglichen ESE-Fehlern finden Sie unter Extensible Storage Engine Errors and Error Handling Parameters.
Rückgabecode |
Beschreibung |
|---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errCannotIndex |
Es wurde versucht, eine Indizierung über eine Escrow-Update- oder SLV-Spalte zu erstellen (beachten Sie, dass SLV-Spalten veraltet sind). |
JET_errColumnNotFound |
Es wurde versucht, eine indizierte Spalte für eine nicht vorhandene Spalte zu verwenden. Der Versuch, eine bedingte Indizierung für eine nicht vorhandene Spalte zu erstellen, kann auch diesen Fehler erzeugen. |
JET_errDensityInvalid |
Dieser Fehler wird zurückgegeben, wenn der ulDensity-Member der JET_INDEXCREATE-Struktur auf eine Zahl kleiner als 20 oder mehr 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 wird, erstellt die Datenbank-Engine transparent einen. |
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, und ihre Grenzwerte werden nicht unterstützt. Weitere Informationen finden Sie im Abschnitt "Hinweise" der JET_TUPLELIMITS-Struktur. |
JET_errIndexTuplesNonUniqueOnly |
Windows XP und höher. Ein Tupelindex kann nicht eindeutig sein (grbit darf nicht sowohl JET_bitIndexTuples als auch JET_bitIndexUnique festgelegt sein). |
JET_errIndexTuplesOneColumnOnly |
Windows XP und höher. Ein Tupelindex kann sich nur über einer einzelnen Spalte befinden (d. b. das Grbit-Element der JET_INDEXCREATE-Struktur hat JET_bitIndexTuples festgelegt, und der szKey-Member der JET_INDEXCREATE-Struktur gibt mehr als eine Spalte an). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP und höher. Ein Tupelindex kann kein primärer Index sein (d.amp;quot;das grbit-Element der JET_INDEXCREATE-Struktur darf nicht sowohl JET_bitIndexPrimary als auch JET_bitIndexTuples festgelegt sein). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP und höher. Ein Tupelindex kann sich nur in einer Text- oder Unicode-Spalte befinden. Der Versuch, andere Spalten (z. B. Binärspalten) zu indizieren, führt zu JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP und höher. Ein Tupelindex lässt nicht zu, dass der cbVarSegMac-Member der JET_INDEXCREATE-Struktur festgelegt wird. |
JET_errInTransaction |
Es wurde versucht, während einer Transaktion einen Index ohne Versionsinformationen zu erstellen. |
JET_errInvalidgrbit |
Die Indexdefinition ist ungültig, da der Grbitmember der JET_INDEXCREATE Struktur inkonsistente Werte enthält. Mögliche Gründe:
Wenn mehrere Indizes gleichzeitig erstellt werden (d. b. 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 (LOCALE ID, LCID) wurde übergeben (entweder über den lcid-Member in der JET_UNICODEINDEX-Struktur, auf den der pidxunicode-Member in der JET_INDEXCREATE-Struktur einen Zeiger auf enthält, oder über den lcid-Member der JET_INDEXCREATE-Struktur). |
JET_errInvalidName |
Ein ungültiger Indexname wurde angegeben. Weitere Informationen finden Sie unter JET_INDEXCREATE. |
JET_errInvalidParameter |
Ein ungültiger Parameter wurde an die API übergeben. Dieser Fehler kann unter anderem folgende Ursachen haben:
|
JET_errUnicodeTranslationFail |
Fehler beim Normalisieren einer Unicode-Spalte. Dies kann dadurch verursacht werden, dass nicht mehr die Systemressourcen verfügbar sind. |
Hinweise
Der Rückgabewert wird nach erfolgreichem Abschluss aller angegebenen Indizes JET_errSuccess.
JetCreateIndex2 durchläuft die in pindexcreate angegebenen Indizes und bricht manchmal beim ersten Fehler ab. Indizes nach dem ersten Index mit einem Fehler wurden möglicherweise nicht versucht, obwohl der Err-Member der JET_INDEXCREATE-Struktur JET_errSuccess enthält.
Anforderungen
| | |
Client
|Erfordert Windows Vista, Windows XP oder Windows 2000 Professional.
| |Server
|Erfordert Windows Server 2008, Windows Server 2003 oder Windows 2000 Server.
| |Header
|Deklariert in Esent.h.
| |Bibliothek
|Verwenden Sie ESENT.lib.
| |DLL
|Erfordert ESENT.dll.
| |Unicode
|Wird als JetCreateIndex2W (Unicode) und JetCreateIndex2A (ANSI) implementiert.
|Weitere Informationen
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2