Funzione JetAddColumn
Si applica a: Windows | Windows Server
Funzione JetAddColumn
La funzione JetAddColumn aggiunge una nuova colonna a una tabella esistente in un database ESE.
JET_ERR JET_API JetAddColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__in const JET_COLUMNDEF* pcolumndef,
__in_opt const void* pvDefault,
__in unsigned long cbDefault,
__out_opt JET_COLUMNID* pcolumnid
);
Parametri
sesid
Contesto della sessione di database da usare per la chiamata API.
tableid
Tabella a cui aggiungere la colonna.
szColumnName
Nome della colonna da aggiungere. Il nome deve soddisfare i criteri seguenti:
Deve essere minore di JET_cbNameMost caratteri in lunghezza, non inclusa la terminazione NULL.
Deve contenere caratteri solo dai set seguenti: da 0 a 9, da A a Z, da z a z e da tutti gli altri punti di punteggiatura tranne per punto esclamativo (!), virgola (),parentesi quadre ([) e chiusura parentesi quadre (]), ovvero caratteri ASCII 0x20, 0x22 attraverso 0x2d, 0x2f attraverso 0x5a, 0x5c e 0x5d attraverso 0x7f.
Non può iniziare con uno spazio.
Deve contenere almeno un carattere non spazio.
pcolumndef
Puntatore a una struttura JET_COLUMNDEF , che definisce i dati che possono essere archiviati in una colonna.
pvDefault
Puntatore a un buffer contenente il valore predefinito per la colonna. La lunghezza del buffer è cbDefault. Se non esiste alcuna impostazione predefinita, impostare pvDefault su NULL e cbDefault su zero. I valori predefiniti non possono essere maggiori di JET_cbColumnMost byte per colonne fisse o JET_cbLVDefaultValueMost byte per valori lunghi. Se un valore predefinito è maggiore di quello, verrà troncato in modo invisibile all'utente.
Se grbit ha JET_bitColumnUserDefinedDefault impostato, pvDefault verrà interpretato come puntatore a una struttura JET_USERDEFINEDDEFAULT .
cbDefault
Dimensioni, in byte, del buffer specificato in pvDefault.
pcolumnid
Puntatore a una struttura JET_COLUMNID che, in caso di esito positivo, riceverà l'identificatore della colonna appena creata. In caso di errore, il valore non è definito.
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 |
L'operazione è stata completata. |
JET_errFixedDDL |
È stato effettuato un tentativo di modificare la definizione dei dati di una tabella DDL fissa. Un esempio di tabella con DDL fisso è una tabella modello. |
JET_errInvalidParameter |
Un parametro non valido è stato passato all'API. Alcuni esempi di parametri non validi sono:
|
JET_errInTransaction |
È stato eseguito un tentativo di aggiungere una colonna con il set di bit JET_bitColumnUnversioned, ma la sessione è attualmente in una transazione. |
JET_errColumnDuplicate |
Esiste già una colonna. È stato eseguito un tentativo di aggiungere una colonna senza informazioni sulla versione e tale colonna esiste già. |
JET_errTableNotEmpty |
La tabella contiene dati. Una colonna Di aggiornamento escrow può essere aggiunta solo a una tabella vuota. |
JET_errRecordTooBig |
Il record è troppo grande. La somma del parametro cbMax per le colonne fisse non deve superare un determinato valore. |
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_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_errCallbackNotResolved |
Impossibile risolvere la funzione di callback. La DLL potrebbe non essere stata trovata o la funzione nella DLL potrebbe non essere stata trovata. Il registro eventi fornisce altri dettagli se è abilitata la registrazione sufficiente. |
JET_wrnColumnMaxTruncated |
Avviso che indica che la lunghezza massima (cbMax) di una colonna fissa o variabile è maggiore di JET_cbColumnMost. Questo limite non si applica ai valori lunghi, ovvero JET_coltypLongBinary e JET_coltypLongText. |
JET_errInvalidName |
Un nome non valido è stato passato come szColumnName. Per altre informazioni sulle restrizioni, vedere i criteri per szColumnName. |
JET_errInvalidColumnType |
Il campo coltyp non è stato impostato su un tipo di colonna valido. |
JET_errInvalidCodePage |
Il parametro cp della struttura JET_COLUMNDEF 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_errTaggedNotNULL |
JET_bitColumnNotNULL non può essere usato con colonne tag, Long Value o SLV. |
JET_errInvalidgrbit |
È stata specificata una combinazione non valida di grbit . Alcuni dei motivi per questo errore sono:
|
JET_errMultiValuedColumnMustBeTagged |
Una colonna multivalore (JET_bitColumnMultiValued) può essere usata solo in una colonna con tag o valore lungo (JET_coltypLongBinary o JET_coltypLongText). |
JET_errCannotBeTagged |
È stato eseguito un tentativo di usare una colonna contrassegnata quando la colonna potrebbe non essere contrassegnata. Alcuni dei vincoli per la disabilitazione delle colonne contrassegnate sono:
|
JET_errExclusiveTableLockRequired |
Per questa operazione è stato necessario un blocco esclusivo sulla tabella. |
JET_wrnColumnMaxTruncated |
Avviso che indica che la lunghezza massima (cbMax) di una colonna fissa o variabile è maggiore di JET_cbColumnMost. Questo limite non si applica ai valori lunghi, ovvero JET_coltypLongBinary e JET_coltypLongText. |
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 JetAddColumnW (Unicode) e JetAddColumnA (ANSI). |
Vedere anche
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetCreateTableColumnIndex2