Funzione JetCreateTableColumnIndex
Si applica a: Windows | Windows Server
Funzione JetCreateTableColumnIndex
La funzione JetCreateTableColumnIndex crea una tabella in un database ESE con un set iniziale di indici e un set iniziale di colonne da una matrice di strutture JET_TABLECREATE . Il nome JetCreateTableColumnIndex deriva dall'ordine di creazione degli oggetti. Crea prima una tabella, colonne e infine indici.
JET_ERR JET_API JetCreateTableColumnIndex(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE* ptablecreate
);
Parametri
sesid
Contesto della sessione di database da usare per la chiamata API.
dbid
Identificatore di database da usare per la chiamata API.
ptablecreate
Puntatore a una struttura JET_TABLECREATE che definisce la tabella da creare. Per altre informazioni, vedere JET_TABLECREATE .
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_errCallbackNotResolved |
Impossibile risolvere la funzione di callback. La DLL potrebbe non essere stata trovata o la funzione nella DLL potrebbe non essere stata trovata. Con la registrazione sufficiente abilitata, il registro eventi fornisce altri dettagli. |
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_errCannotNestDDL |
Se ptablecreate-grbit specifica JET_bitTableCreateTemplateTable, ma ptablecreate-szTemplateTableName>> è impostato su NULL. |
JET_errColumnDuplicate |
Esiste già una colonna. |
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_errColumnRedundant |
È stato effettuato un tentativo di aggiungere una colonna ridondante. Non deve essere presente più di una colonna autoincrement e non più di una colonna di versione per tabella. |
JET_errDensityInvalid |
Questo errore verrà restituito se il membro ulDensity della struttura JET_INDEXCREATE è impostato su un numero minore di 20 o più di 100. |
JET_errDDLNotInheritable |
Indica che la tabella denominata nel membro szTemplateTableName della struttura JET_TABLECREATE non è stata contrassegnata come tabella modello, ovvero quella tabella non ha JET_bitTableCreateTemplateTable impostata. |
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. Alcuni dei possibili motivi per la ricezione di questo errore sono:
|
JET_errIndexTuplesInvalidLimits |
Windows XP e versioni successive. È 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. Un indice di tupla non può essere univoco, ovvero il membro grbit della struttura JET_INDEXCREATE non deve avere sia JET_bitIndexPrimary che JET_bitIndexUnique impostato. |
JET_errIndexTuplesOneColumnOnly |
Windows XP e versioni successive. Un indice di tupla può essere solo su una singola colonna, ovvero se il membro grbitdella strutturaJET_INDEXCREATE ha JET_bitIndexTuples impostato e il membro szKey della struttura JET_INDEXCREATE specifica più di una colonna. |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP e versioni successive. Un indice tuple non può essere un indice primario, ovvero il membro grbit della struttura JET_INDEXCREATE non deve avere sia JET_bitIndexPrimary che JET_bitIndexTuples impostato. |
JET_errIndexTuplesTextColumnsOnly |
Windows XP e versioni successive. 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. Un indice di tupla non consente l'impostazione del membro cbVarSegMac della struttura JET_INDEXCREATE . |
JET_errInTransaction |
È stato eseguito un tentativo di creare un indice senza informazioni sulla versione durante una transazione. |
JET_errInvalidCodePage |
Il membro cp della struttura JET_COLUMNCREATE non è stato impostato su una tabella codici valida. Gli unici valori validi per le colonne di testo sono inglese (1252) e Unicode (1200). Un valore pari a 0 indica che il valore predefinito verrà usato (inglese, 1252). |
JET_errInvalidColumnType |
Il membro coltyp della struttura JET_COLUMNCREATE non è stato impostato su un tipo di colonna valido. |
JET_errInvalidCreateIndex |
Alcuni dei motivi per cui questo errore può verificarsi:
|
JET_errInvalidgrbit |
Una combinazione non valida di membri grbit è stata specificata in JET_TABLECREATE o JET_TABLECREATE2. La definizione dell'indice non è valida perché il membro grbit contiene valori incoerenti. Alcuni possibili motivi sono:
|
JET_errInvalidLanguageId |
È stato passato un ID locale non valido (LCID) tramite il membro lcid della struttura JET_UNICODEINDEX a cui punta il membro pidxunicode nella struttura JET_INDEXCREATE o tramite il campo lciddella struttura JET_INDEXCREATE . |
JET_errInvalidParameter |
È stato specificato un parametro non valido. Alcuni possibili motivi sono:
|
JET_errRecordTooBig |
Il record è troppo grande. La somma del membro cbMax della struttura JET_COLUMNCREATE per tutte le colonne fisse non deve superare un determinato valore. |
JET_errTableDuplicate |
La tabella esiste già. |
JET_errTooManyColumns |
È stato effettuato un tentativo di aggiungere troppe colonne alla tabella. Una tabella non può avere più di JET_ccolFixedMost colonne fisse, non più di JET_ccolVarMost colonne a lunghezza variabile e non più di JET_ccolTaggedMost colonne contrassegnate. |
JET_errUnicodeTranslationFail |
Si è verificato un errore durante il tentativo di normalizzare una colonna Unicode. Ciò può essere causato dall'esecuzione delle risorse di sistema. |
Commenti
La chiamata a JetCreateTableColumnIndex è identica alla chiamata di JetCreateTableColumnIndex2, con ogni campo nella struttura JET_TABLECREATE2 contenente il valore del campo corrispondente di JET_TABLECREATE, con le eccezioni seguenti:
JET_TABLECREATE2.cbStruct impostato su sizeof( JET_TABLECREATE2)
JET_TABLECREATE2.szCallback impostato su NULL
JET_TABLECREATE2.cbtyp impostato su 0
Per altre informazioni, vedere JetCreateTableColumnIndex2 .
Come JetOpenTable, quando l'applicazione viene eseguita usando l'oggetto tableid restituito, deve essere in genere chiuso con JetCloseTable.
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 JetCreateTableColumnIndexW (Unicode) e JetCreateTableColumnIndexA (ANSI). |
Vedere anche
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2