Partager via


Structure JET_COLUMNDEF

S’applique à : Windows | Windows Server

Structure JET_COLUMNDEF

La structure JET_COLUMNDEF définit les données qui peuvent être stockées dans une colonne.

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wCollate;
      unsigned long cbMax;
      JET_GRBIT grbit;
    } JET_COLUMNDEF;

Membres

cbStruct

Taille de la structure, en octets. Il doit être défini sur sizeof( JET_COLUMNDEF).

Columnid

Réservé. columnid doit être défini sur 0 (zéro).

coltyp

Type de la colonne (par exemple, texte, binaire ou numérique). Pour plus d’informations, consultez JET_COLTYP.

wCountry

Réservé. wCountry doit être défini sur 0 (zéro).

langid

Obsolète. langid doit être défini sur 0 (zéro).

cp

Page de code de la colonne. Les seules valeurs valides pour les colonnes de texte sont Anglais (1252) et Unicode (1200). La valeur zéro signifie que la valeur par défaut sera utilisée (anglais, 1252). Si la colonne n’est pas une colonne de texte, la page de code est automatiquement définie sur zéro.

wCollate

Réservé. wCollate doit être défini sur 0 (zéro).

cbMax

Longueur maximale, en octets, d’une colonne de longueur variable ou longueur d’une colonne de longueur fixe.

grbit

Groupe de bits contenant les options à utiliser pour cet appel, qui incluent zéro ou plusieurs des valeurs suivantes.

Valeur

Signification

JET_bitColumnFixed

La colonne sera corrigée. Il utilise toujours la même quantité d’espace dans une ligne, quelle que soit la quantité de données stockées dans la colonne. JET_bitColumnFixed ne peut pas être utilisé avec JET_bitColumnTagged. Ce bit ne peut pas être utilisé avec des valeurs longues (c’est-à-dire JET_coltypLongText et JET_coltypLongBinary).

JET_bitColumnTagged

La colonne sera marquée. Les colonnes étiquetées ne prennent pas d’espace dans la base de données si elles ne contiennent pas de données. Ce bit ne peut pas être utilisé avec JET_bitColumnFixed.

JET_bitColumnNotNULL

La colonne ne doit jamais être définie sur une valeur NULL.

JET_bitColumnVersion

La colonne est une colonne de version qui spécifie la version de la ligne. La valeur de cette colonne commence à zéro et est automatiquement incrémentée pour chaque mise à jour de la ligne.

Ce bit ne peut être appliqué qu’à JET_coltypLong colonnes. Ce bit ne peut pas être utilisé avec JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate ou JET_bitColumnTagged.

JET_bitColumnAutoincrement

La colonne est automatiquement incrémentée. Le nombre est un nombre croissant et il est garanti qu’il est unique dans une table. Toutefois, les nombres peuvent ne pas être continus. Par exemple, si cinq lignes sont insérées dans une table, la colonne « autoincrement » peut contenir les valeurs { 1, 2, 6, 7, 8 }. Ce bit ne peut être utilisé que sur les colonnes de type JET_coltypLong ou JET_coltypCurrency.

Windows 2000 : Dans Windows 2000, ce bit ne peut être utilisé que sur les colonnes de type JET_coltypLong.

JET_bitColumnUpdatable

Ce bit est valide uniquement sur les appels à JetGetColumnInfo.

JET_bitColumnTTKey

Ce bit est valide uniquement lors des appels à JetOpenTable.

JET_bitColumnTTDescending

Ce bit est valide uniquement lors des appels à JetOpenTempTable.

JET_bitColumnMultiValued

La colonne peut être à valeurs multiples. Une colonne à valeurs multiples peut avoir zéro, une ou plusieurs valeurs associées. Les différentes valeurs d’une colonne à valeurs multiples sont identifiées par un nombre appelé membre itagSequence , qui appartient à différentes structures, notamment : JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN et JET_ENUMCOLUMNVALUE. Les colonnes à valeurs multiples doivent être étiquetées ; autrement dit, il ne peut pas s’agir de colonnes de longueur fixe ou variable.

JET_bitColumnEscrowUpdate

Spécifie qu’une colonne est une colonne de mise à jour d’entiercement. Une colonne de mise à jour d’entiercement peut être mise à jour simultanément par différentes sessions avec JetEscrowUpdate et maintient la cohérence transactionnelle. Une colonne de mise à jour d’entiercement doit également remplir les conditions suivantes :

  • Une colonne de mise à jour d’entiercement ne peut être créée que lorsque la table est vide.

  • Une colonne de mise à jour d’entiercement doit être de type JET_coltypLong.

  • Une colonne de mise à jour d’entiercement doit avoir une valeur par défaut ( c’est-à-dire que cbDefault doit être positif).

  • JET_bitColumnEscrowUpdate ne peut pas être utilisé conjointement avec JET_bitColumnTagged, JET_bitColumnVersion ou JET_bitColumnAutoincrement.

JET_bitColumnUnversioned

La colonne sera créée dans un sans informations de version. Cela signifie que d’autres transactions qui tentent d’ajouter une colonne portant le même nom échouent. Ce bit n’est utile qu’avec JetAddColumn. Il ne peut pas être utilisé dans une transaction.

JET_bitColumnMaybeNull

Réservé pour un usage futur.

JET_bitColumnFinalize

Utilisez JET_bitColumnDeleteOnZero au lieu de JET_bitColumnFinalize. JET_bitColumnFinalize qu’une colonne peut être finalisée. Lorsqu’une colonne qui peut être finalisée a une colonne de mise à jour d’entiercement qui atteint zéro, la ligne est supprimée. Les versions ultérieures peuvent appeler une fonction de rappel à la place (pour plus d’informations, consultez JET_CALLBACK). Une colonne qui peut être finalisée doit être une colonne de mise à jour d’entiercement. JET_bitColumnFinalize ne peut pas être utilisé avec JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

La valeur par défaut d’une colonne est fournie par une fonction de rappel. Voir JET_CALLBACK. Une colonne qui a une valeur par défaut définie par l’utilisateur doit être une colonne étiquetée. La spécification de JET_bitColumnUserDefinedDefault signifie que pvDefault doit pointer vers une structure JET_USERDEFINEDDEFAULT et que cbDefault doit être défini sur sizeof( JET_USERDEFINEDDEFAULT ).

  • JET_bitColumnUserDefinedDefault ne peut pas être utilisé conjointement avec JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero ou JET_bitColumnMaybeNull.

JET_bitColumnDeleteOnZero

La colonne est une colonne de mise à jour séquestre, et quand elle atteint zéro, l’enregistrement est supprimé. Une utilisation courante d’une colonne qui peut être finalisée consiste à l’utiliser comme champ de nombre de références, et lorsque le champ atteint zéro, l’enregistrement est supprimé. JET_bitColumnDeleteOnZero est lié à JET_bitColumnFinalize. Une colonne Delete-on-zero doit être une colonne de mise à jour d’entiercement. JET_bitColumnDeleteOnZero ne peut pas être utilisé avec JET_bitColumnFinalize. JET_bitColumnDeleteOnZero ne peut pas être utilisé avec les colonnes par défaut définies par l’utilisateur.

Spécifications

Condition requise Valeur

Client

Nécessite Windows Vista, Windows XP ou Windows 2000 Professionnel.

Serveur

Nécessite Windows Server 2008, Windows Server 2003 ou Windows 2000 Server.

En-tête

Déclaré dans Esent.h.

Voir aussi

JET_CALLBACK
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNID
JET_GRBIT
JET_USERDEFINEDDEFAULT
JetAddColumn
JetEscrowUpdate
JetGetTableColumnInfo
JetOpenTempTable
JetOpenTempTable2
JetOpenTempTable3
JetRenameColumn