Condividi tramite


Struttura JET_COLUMNCREATE

Si applica a: Windows | Windows Server

Struttura JET_COLUMNCREATE

La struttura JET_COLUMNCREATE descrive una colonna da creare in un database.

    typedef struct tag_JET_COLUMNCREATE {
      unsigned long cbStruct;
      tchar* szColumnName;
      JET_COLTYP coltyp;
      unsigned long cbMax;
      JET_GRBIT grbit;
      void* pvDefault;
      unsigned long cbDefault;
      unsigned long cp;
      JET_COLUMNID columnid;
      JET_ERR err;
    } JET_COLUMNCREATE;

Membri

cbStruct

Dimensioni della struttura, in byte. Questo campo deve essere inizializzato in sizeof( JET_COLUMNCREATE ).

szColumnName

Nome della colonna da creare. Il nome deve soddisfare i criteri seguenti:

  • Deve essere minore di JET_cbNameMost caratteri in lunghezza, non incluso il valore NULL terminante.
  • 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 di apertura ([) e parentesi quadre di chiusura (]), ovvero caratteri ASCII 0x20, 0x22 attraverso 0x2d, 0x2f attraverso 0x5a, 0x5c, 0x5d attraverso 0x7f.
  • Non può iniziare con uno spazio.
  • Deve contenere almeno un carattere non spazio.

coltyp

Tipo della colonna, ad esempio testo, binario o numerico. Per altre informazioni, vedere JET_COLTYP.

cbMax

Lunghezza massima, in byte, di una colonna a lunghezza variabile. Lunghezza della colonna per le colonne a lunghezza fissa.

grbit

Un gruppo di bit che contengono le opzioni per questa struttura e che includono zero o più dei valori seguenti.

Valore

Significato

JET_bitColumnFixed

La colonna è fissa. Userà sempre la stessa quantità di spazio in una riga, indipendentemente dalla quantità di dati archiviati nella colonna. JET_bitColumnFixed non può essere usato con JET_bitColumnTagged. Questo bit non può essere usato con valori lunghi, ad esempio JET_coltypLongText e JET_coltypLongBinary.

JET_bitColumnTagged

La colonna è contrassegnata. Le colonne contrassegnate non occupano spazio nel database se non contengono dati. Impossibile usare questo bit con JET_bitColumnFixed.

JET_bitColumnNotNULL

La colonna non deve mai essere impostata su un valore NULL.

JET_bitColumnAutoincrement

La colonna viene incrementata automaticamente. Il numero è un numero crescente e è garantito essere univoco all'interno di una tabella. Il numero, tuttavia, potrebbe non essere continuo. Se ad esempio cinque righe vengono inserite in una tabella, la colonna autoincrement potrebbe contenere i valori { 1, 2, 6, 7, 8 }.

Windows 2000: Questo bit può essere usato solo sulle colonne di tipo JET_coltypLong.

Windows Server 2003 e versioni successive: Questo bit può essere usato solo su colonne di tipo JET_coltypLong o JET_coltypCurrency.

JET_bitColumnUpdatable

Questo bit è valido solo per le chiamate a JetGetColumnInfo.

JET_bitColumnTTKey

Questo bit è valido solo per le chiamate a JetOpenTempTable.

JET_bitColumnTTDescending

Questo bit è valido solo per le chiamate a JetOpenTempTable.

JET_bitColumnMultiValued

La colonna può essere multivalore. Una colonna multivalore può avere zero, uno o più valori associati. I vari valori in una colonna multivalore sono identificati dal membro itagSequence di varie strutture, ad esempio JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Le colonne multivalore devono essere contrassegnate come colonne; ovvero, non possono essere colonne a lunghezza fissa o a lunghezza variabile.

JET_bitColumnEscrowUpdate

La colonna è una colonna di aggiornamento di escrow. Una colonna di aggiornamento di escrow può essere aggiornata simultaneamente da sessioni diverse con JetEscrowUpdate e mantenere la coerenza transazionale.

  • È possibile creare una colonna di aggiornamento di escrow solo quando la tabella è vuota.

  • Una colonna di aggiornamento di escrow deve essere di tipo JET_coltypLong.

  • Una colonna di aggiornamento di escrow deve avere un valore predefinito , ovvero cbDefault deve essere positivo.

  • JET_bitColumnEscrowUpdate non può essere usato insieme alle costanti seguenti:

    • JET_bitColumnTagged

    • JET_bitColumnVersion

    • JET_bitColumnAutoincrement

JET_bitColumnUnversioned

La colonna viene creata senza una versione. Altre transazioni che tentano di aggiungere una colonna con lo stesso nome avranno esito negativo. Questo bit è utile solo con JetAddColumn. Non può essere usato all'interno di una transazione.

JET_bitColumnMaybeNull

Riservato per utilizzi futuri.

JET_bitColumnFinalize

Usare JET_bitColumnDeleteOnZero anziché JET_bitColumnFinalize. JET_bitColumnFinalize specifica che una colonna può essere finalizzata. Quando una colonna che può essere finalizzata ha una colonna di aggiornamento di escrow che raggiunge zero, la riga verrà eliminata. Le versioni future possono invece richiamare una funzione di callback. Per altre informazioni, vedere JET_CALLBACK. Una colonna che può essere finalizzata deve essere una colonna di aggiornamento di escrow. JET_bitColumnFinalize non può essere usato con JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

Il valore predefinito per una colonna viene fornito dalla funzione callback, JET_CALLBACK. Una colonna con impostazione predefinita definita dall'utente deve essere una colonna contrassegnata. pvDefault deve puntare a una struttura di JET_USERDEFINEDDEFAULT e cbDefault deve essere impostato su sizeof(JET_USERDEFINEDDEFAULT).

JET_bitColumnUserDefinedDefault non può essere usato insieme alle costanti seguenti:

  • JET_bitColumnFixed

  • JET_bitColumnNotNULL

  • JET_bitColumnVersion

  • JET_bitColumnAutoincrement

  • JET_bitColumnUpdatable

  • JET_bitColumnEscrowUpdate

  • JET_bitColumnFinalize

  • JET_bitColumnDeleteOnZero

  • JET_bitColumnMaybeNull

JET_bitColumnDeleteOnZero

La colonna è una colonna di aggiornamento di escrow e quando raggiunge zero, il record verrà eliminato. Un uso comune per una colonna che può essere finalizzato consiste nell'usarlo come campo conteggio riferimenti e quando il campo raggiunge zero il record viene eliminato. JET_bitColumnDeleteOnZero è correlato alla JET_bitColumnFinalize. Una colonna delete-on-zero deve essere una colonna di aggiornamento di escrow. JET_bitColumnDeleteOnZero non può essere usato con JET_bitColumnFinalize. JET_bitColumnDeleteOnZero non può essere usato con colonne predefinite definite dall'utente.

pvDefault

Punta a un buffer che sarà il valore predefinito per una colonna. La lunghezza del buffer è cbDefault. Se non esiste un valore predefinito, pvDefault deve essere impostato su NULL e cbDefault deve essere impostato su zero. Se grbit ha JET_bitColumnUserDefinedDefault impostato, pvDefault verrà interpretato come puntatore a una struttura JET_USERDEFINEDDEFAULT. I valori predefiniti non possono essere superiori a 255 byte. Se un valore predefinito è maggiore di 255 byte, verrà troncato in modo silenzioso.

cbDefault

Dimensioni, in byte, del buffer specificato da pvDefault.

cp

Tabella codici per la colonna. Gli unici valori validi per le colonne di testo sono inglese (1252) e Unicode (1200). Un valore pari a zero indica che il valore predefinito verrà usato (inglese, 1252). Se la colonna non è una colonna di testo, la tabella codici viene impostata automaticamente su zero.

columnid

In caso di esito positivo, l'identificatore di colonna della colonna appena creata verrà passato in questo campo. In caso di errore, il valore non è definito.

err

Il campo err conterrà lo stato della creazione di questa colonna. Per un elenco di valori probabilmente restituiti, vedere JetAddColumn .

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.

Unicode

Implementato come JET_COLUMNCREATE_W (Unicode) e JET_COLUMNCREATE_A (ANSI).

Vedere anche

JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns