Funzione JetCreateIndex3
Si applica a: Windows | Windows Server
Funzione JetCreateIndex3
La funzione JetCreateIndex3 crea indici su dati in un database ESE, che può essere usato per individuare rapidamente dati specifici.
Windows 7: JetCreateIndex3 viene introdotto nel sistema operativo Windows 7.
JET_ERR JET_API JetCreateIndex3(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
Parametri
sesid
Contesto della sessione di database da usare per la chiamata API.
tableid
Tabella in cui verrà creato l'indice.
pindexcreate
Matrice di strutture JET_INDEXCREATE2 , ognuna delle quali definisce un indice da creare.
cIndexCreate
Numero di elementi nella matrice pindexcreate .
Valore restituito
Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti seguenti. Per altre informazioni sugli errori ESE possibili, vedere Errori del motore di archiviazione estendibili e parametri di gestione degli errori.
Codice restituito |
Descrizione |
---|---|
JET_errSuccess |
Operazione riuscita. |
JET_errCannotIndex |
È stato eseguito un tentativo di indicizzazione su una colonna di aggiornamento di escrow o SLV (si noti che le colonne SLV sono deprecate). |
JET_errColumnNotFound |
È stato eseguito un tentativo di indicizzazione su una colonna non esistente. Il tentativo di indicizzare in modo condizionale una colonna non esistente può anche generare questo errore. |
JET_errDensityInvalid |
Questo errore verrà restituito se il membro ulDensity della struttura JET_INDEXCREATE2 è impostato su un numero minore di 20 o maggiore di 100. |
JET_errIndexDuplicate |
È stato effettuato un tentativo di definire due indici identici. |
JET_errIndexHasPrimary |
È stato effettuato un tentativo di specificare più indici primari per una tabella. Una tabella deve avere esattamente un indice primario. Se non viene specificato alcun indice primario, il motore di database creerà in modo trasparente uno. |
JET_errIndexInvalidDef |
È stata specificata una definizione di indice non valida. Di seguito sono riportati alcuni possibili motivi per la ricezione di questo errore:
|
JET_errIndexTuplesInvalidLimits |
Windows XP e versioni successive di Windows. È stata specificata una struttura JET_TUPLELIMITS e i relativi limiti non sono supportati. Vedere la sezione osservazioni della struttura JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Windows XP e versioni successive di Windows. Un indice di tupla non può essere univoco (grbit non deve avere sia JET_bitIndexTuples che JET_bitIndexUnique set). |
JET_errIndexTuplesOneColumnOnly |
Windows XP e versioni successive di Windows. Un indice di tupla può essere solo su una singola colonna, ovvero il membro grbitdella strutturaJET_INDEXCREATE2 ha JET_bitIndexTuples impostato e il membro szKey della struttura JET_INDEXCREATE2 specifica più di una colonna. |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP e versioni successive di Windows. Un indice tuple non può essere un indice primario, ovvero il membro grbit della struttura JET_INDEXCREATE2 non deve avere sia JET_bitIndexPrimary che JET_bitIndexTuples impostato. |
JET_errIndexTuplesTextColumnsOnly |
Windows XP e versioni successive di Windows. Un indice di tupla può essere solo in una colonna Unicode o di testo. Un tentativo di indicizzazione di altre colonne, ad esempio colonne binarie, genera JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP e versioni successive di Windows. Un indice tuple non consente l'impostazione del membro cbVarSegMac della struttura JET_INDEXCREATE2 . |
JET_errInTransaction |
È stato eseguito un tentativo di creare un indice senza informazioni sulla versione durante una transazione. |
JET_errInvalidgrbit |
La definizione dell'indice non è valida perché il membro grbit della struttura JET_INDEXCREATE2 contiene valori incoerenti. Di seguito sono riportati alcuni possibili motivi:
Quando si creano diversi indici contemporaneamente, ovvero se il parametro cIndexCreate è maggiore di uno, nessuno degli indici può contenere uno dei bit seguenti:
|
JET_errInvalidLanguageId |
Un ID locale non valido (LCID) è stato passato (tramite il membro lcid nella struttura JET_UNICODEINDEX , che il membro pidxunicodenella struttura JET_INDEXCREATE2 contiene un puntatore a o tramite il membro lciddella struttura JET_INDEXCREATE2). |
JET_errInvalidName |
È stato specificato un nome di indice non valido. Per altre informazioni, vedere JET_INDEXCREATE2 . |
JET_errInvalidParameter |
Un parametro non valido è stato passato all'API. Di seguito sono riportati alcuni motivi per cui questo errore può essere restituito:
|
JET_errUnicodeTranslationFail |
Si è verificato un errore durante il tentativo di normalizzare una colonna Unicode. Ciò può essere causato dall'esecuzione delle risorse di sistema. |
JET_errSpaceHintsInvalid |
Un elemento della struttura degli hint dello spazio JET non è corretto o utilizzabile. |
Commenti
Il valore restituito è JET_errSuccess al completamento corretto di tutti gli indici specificati.
JetCreateIndex3 esegue l'iterazione degli indici specificati in pindexcreate e talvolta interromperà il primo errore. Eventuali indici dopo il primo indice con un errore potrebbero non essere stati tentati, anche se il membro err della struttura JET_INDEXCREATE2 contiene JET_errSuccess.
Requisiti
Requisito | Valore |
---|---|
Client |
Richiede Windows Vista, Windows XP o Windows 2000 Professional. |
Server |
Richiede Windows Server 2008, Windows Server 2003 o Windows 2000 Server. |
Intestazione |
Dichiarato in Esent.h. |
Libreria |
Usare ESENT.lib. |
DLL |
Richiede ESENT.dll. |
Unicode |
Implementato come JetCreateIndex3W (Unicode) e JetCreateIndex3A (ANSI). |
Vedere anche
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS