JetCreateIndex2-Funktion
Gilt für: Windows | Windows Server
JetCreateIndex2-Funktion
Die JetCreateIndex2-Funktion erstellt Indizes über Daten in einer ESE-Datenbank, die verwendet werden kann, 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, auf der der Index erstellt wird.
pindexcreate
Ein Array von JET_INDEXCREATE Strukturen, die jeweils einen zu erstellenden Index definieren.
cIndexCreate
Die Anzahl der Elemente im Pindexcreate-Array .
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 Modulfehler und Fehlerbehandlungsparameter.
Rückgabecode |
Beschreibung |
---|---|
JET_errSuccess |
Der Vorgang wurde erfolgreich abgeschlossen. |
JET_errCannotIndex |
Es wurde versucht, über eine Escrow-Update- oder SLV-Spalte zu indexieren (beachten Sie, dass SLV-Spalten veraltet sind). |
JET_errColumnNotFound |
Es wurde versucht, eine nicht vorhandene Spalte indizieren zu können. Der Versuch, eine nicht vorhandene Spalte indizieren zu können, kann diesen Fehler auch erzeugen. |
JET_errDensityInvalid |
Dieser Fehler wird zurückgegeben, wenn das UlDensity-Element der JET_INDEXCREATE-Struktur auf eine Zahl festgelegt ist, die kleiner als 20 oder mehr als 100 ist. |
JET_errIndexDuplicate |
Ein Versuch, zwei identische Indizes zu definieren, wurde vorgenommen. |
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, wird das Datenbankmodul transparent erstellt. |
JET_errIndexInvalidDef |
Eine ungültige Indexdefinition wurde angegeben. Einige der möglichen Gründe für den Empfang dieses Fehlers sind:
|
JET_errIndexTuplesInvalidLimits |
Windows XP und höher. Eine JET_TUPLELIMITS Struktur wurde angegeben, und die Grenzwerte werden nicht unterstützt. Siehe den Abschnitt "Hinweise" der JET_TUPLELIMITS Struktur. |
JET_errIndexTuplesNonUniqueOnly |
Windows XP und höher. Ein Tupleindex kann nicht eindeutig sein (grbit darf nicht über JET_bitIndexTuples und JET_bitIndexUnique satz verfügen). |
JET_errIndexTuplesOneColumnOnly |
Windows XP und höher. Ein Tupleindex kann nur über eine einzelne Spalte (d. h. das Grbit-Element der JET_INDEXCREATE-Struktur hat JET_bitIndexTuples Festgelegt, und das szKey-Element der JET_INDEXCREATE-Struktur gibt mehrere Spalten an). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP und höher. Ein Tupleindex kann kein primärer Index sein (d. b. das Grbit-Element der JET_INDEXCREATE-Struktur darf nicht über JET_bitIndexPrimary und JET_bitIndexTuples satz verfügen). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP und höher. Ein Tupleindex kann nur in einer Text- oder Unicode-Spalte enthalten sein. Ein Versuch, andere Spalten zu indexieren (z. B. binärspalten), führt zu JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP und höher. Ein Tupleindex erlaubt das cbVarSegMac-Element der JET_INDEXCREATE Struktur nicht festzulegen. |
JET_errInTransaction |
Es wurde versucht, einen Index ohne Versionsinformationen während einer Transaktion zu erstellen. |
JET_errInvalidgrbit |
Die Indexdefinition ist ungültig, da das Grbit-Element der JET_INDEXCREATE-Struktur inkonsistente Werte enthält. Einige mögliche Gründe sind:
Wenn Sie mehrere Indizes gleichzeitig erstellen (d. h. wenn der cIndexCreate-Parameter größer als einer ist), kann keine der Indizes eine der folgenden Bits enthalten:
|
JET_errInvalidLanguageId |
Eine ungültige Gebietsschema-ID (LCID) wurde übergeben (entweder über das lcid-Element in der JET_UNICODEINDEX-Struktur, an das das Pidxunicode-Element in der JET_INDEXCREATE-Struktur einen Zeiger oder über das lcid-Element der JET_INDEXCREATE-Struktur enthält). |
JET_errInvalidName |
Ein ungültiger Indexname wurde angegeben. Weitere Details finden Sie unter JET_INDEXCREATE . |
JET_errInvalidParameter |
Ein ungültiger Parameter wurde in die API übergeben. Einige der Gründe, aus denen dieser Fehler zurückgegeben werden kann, sind:
|
JET_errUnicodeTranslationFail |
Fehler beim Versuch, eine Unicode-Spalte zu normalisieren. Dies kann durch Das Ausführen von Systemressourcen verursacht werden. |
Bemerkungen
Der Rückgabewert ist JET_errSuccess bei erfolgreicher Fertigstellung aller angegebenen Indizes.
JetCreateIndex2 durch die in pindexcreate angegebenen Indizes und wird manchmal auf dem ersten Fehler abgebrochen. Alle Indizes nach dem ersten Index mit einem Fehler wurden möglicherweise nicht versucht, auch wenn das err-Element der JET_INDEXCREATE-Struktur JET_errSuccess enthält.
Requirements (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 JetCreateIndex2W (Unicode) und JetCreateIndex2A (ANSI). |
Weitere Informationen
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2