Funzione JetCreateTableColumnIndex4W
Si applica a: Windows | Windows Server
La funzione JetCreateTableColumnIndex4W crea una tabella in un database ESE( Extensible Storage Engine con un set iniziale di indici e un set iniziale di colonne da una matrice di strutture JET_TABLECREATE3 . La struttura JET_TABLECREATE3 consente di specificare una funzione di callback.
La funzione JetCreateTableColumnIndex4W è stata introdotta nel sistema operativo Windows 8.
JET_ERR JET_API JetCreateTableColumnIndex4W(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE3* 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_TABLECREATE3 che definisce la tabella da creare. Per altre informazioni, vedere JET_TABLECREATE3 .
Valore restituito
Questa funzione restituisce il tipo di dati JET_ERR con uno dei codici restituiti elencati nella tabella seguente. Per altre informazioni sui possibili errori di Estendibilità archiviazione (ESE), 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 |
Restituito se il parametro ptablecreate-grbit specifica il valore JET_bitTableCreateTemplateTable, ma il parametro ptablecreate-szTemplateTableName>> è impostato su Null. |
JET_errColumnDuplicate |
Esiste già una colonna. |
JET_errColumnNotFound |
È stato eseguito un tentativo di indicizzazione su una colonna inesistente. Un tentativo di indicizzazione condizionale su una colonna non esistente può anche produrre questo errore. |
JET_errColumnRedundant |
È stato effettuato un tentativo di aggiungere una colonna ridondante. Non esiste più di una colonna autoincrement e non deve esistere più di una colonna di versione per tabella. |
JET_errDensityInvalid |
Questo errore verrà restituito se il membro ulDensity della struttura JET_INDEXCREATE2 è impostato su un numero minore di 20 o più di 100. |
JET_errDDLNotInheritable |
Indica che la tabella denominata nel membro szTemplateTableName della struttura JET_TABLECREATE3 non è stata contrassegnata come tabella modello, ovvero quella tabella non ha impostato il valore del parametro JET_bitTableCreateTemplateTable. |
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 dei possibili motivi per questo errore:
|
JET_errIndexTuplesInvalidLimits |
Si applica alle versioni di Windows a partire da Windows XP. È stata specificata una struttura JET_TUPLELIMITS e i relativi limiti non sono supportati. Per altre informazioni, vedere la sezione osservazioni della struttura JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Si applica alle versioni di Windows a partire da Windows XP. Un indice di tupla non può essere univoco, ovvero il membro grbit della struttura JET_INDEXCREATE2 non deve avere sia JET_bitIndexPrimary che JET_bitIndexUnique valori impostati. |
JET_errIndexTuplesOneColumnOnly |
Si applica alle versioni di Windows a partire da Windows XP. Un indice di tupla può essere solo su una singola colonna, ovvero se il membro grbitdella strutturaJET_INDEXCREATE2 ha JET_bitIndexTuples valore impostato e il membro szKey della struttura JET_INDEXCREATE2 specifica più di una colonna. |
JET_errIndexTuplesSecondaryIndexOnly |
Si applica alle versioni di Windows a partire da Windows XP. 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 |
Si applica alle versioni di Windows a partire da Windows XP. Un indice di tupla può essere solo in una colonna Unicode o di testo. Un tentativo di indicizzare altre colonne ,ad esempio colonne binarie, genera un codice di risposta JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Si applica alle versioni di Windows a partire da Windows XP. 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_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 |
Di seguito sono riportati alcuni motivi per cui questo errore può verificarsi:
|
JET_errInvalidgrbit |
Una combinazione non valida di membri grbit è stata specificata nella struttura JET_TABLECREATE3 . La definizione dell'indice non è valida perché il membro grbit contiene valori incoerenti. Di seguito sono riportati alcuni possibili motivi:
|
JET_errInvalidLanguageId |
Un ID locale non valido (LCID) è stato passato (tramite il membro lcid della struttura JET_UNICODEINDEX a cui punta il membro pidxunicodenella struttura JET_INDEXCREATE2 o tramite il campo lciddella struttura JET_INDEXCREATE2 ). |
JET_errInvalidParameter |
È stato specificato un parametro non valido. Di seguito sono riportati alcuni possibili motivi:
|
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 quando è stato effettuato un 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
La funzione JetCreateTableColumnIndex4W crea una tabella con un set iniziale di colonne e indici. È possibile aggiungere e rimuovere in modo dinamico colonne e indici aggiuntivi tramite jetAddColumn, JetDeleteColumn, JetDeleteColumn2, JetCreateIndex, JetCreateIndex2, JetCreateIndex3, JetCreateIndex3, JetCreateIndex4W e JetDeleteIndex.
Come per la funzione JetOpenTable , quando l'applicazione viene eseguita usando l'oggetto tableid restituito, la funzione JetCloseTable deve chiudere l'applicazione.
Requisiti
Requisito | Valore |
---|---|
Client |
Richiede Windows 8. |
Server |
Richiede Windows Server 2012. |
Intestazione |
Dichiarato in Esent.h. |
Libreria |
Usare ESENT.lib. |
DLL |
Richiede ESENT.dll. |
Vedi anche
JET_CBTYP
JET_DBID
JET_ERR
JET_GRBIT
JET_INDEXCREATE
JET_INDEXCREATE2
JET_SESID
JET_TABLEID
JET_TABLECREATE2
JET_TABLECREATE3
JET_TUPLELIMITS
JetAddColumn
JetCreateIndex
JetCreateIndex2
JetCreateIndex3
JetCreateTable
JetCreateTableColumnIndex
JetDeleteColumn
JetDeleteColumn2