Structure JET_COLUMNCREATE

S’applique à : Windows | Windows Server

Structure JET_COLUMNCREATE

La structure JET_COLUMNCREATE décrit une colonne à créer dans une base de données.

    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;

Membres

cbStruct

Taille de la structure, en octets. Ce champ doit être initialisé en sizeof( JET_COLUMNCREATE ).

szColumnName

Nom de la colonne à créer. Le nom doit répondre aux critères suivants :

  • Il doit contenir moins de JET_cbNameMost caractères, sans compter la valeur NULL de fin.
  • Elle doit contenir uniquement des caractères des jeux suivants : 0 à 9, A à Z, a à z et toutes les autres ponctuations à l’exception du point d’exclamation (!), de la virgule (,), du crochet ouvrant ([) et du crochet fermant (]), c’est-à-dire des caractères ASCII 0x20, 0x22 à 0x2d, 0x2f par 0x5a, 0x5c 0x5d par 0x7f.
  • Il ne peut pas commencer par un espace.
  • Il doit contenir au moins un caractère autre que l’espace.

coltyp

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

cbMax

Longueur maximale, en octets, d’une colonne de longueur variable. Longueur de la colonne pour les colonnes de longueur fixe.

grbit

Groupe de bits qui contiennent les options de cette structure et qui incluent zéro ou plusieurs des valeurs suivantes.

Valeur

Signification

JET_bitColumnFixed

La colonne est fixe. 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 telles que JET_coltypLongText et JET_coltypLongBinary.

JET_bitColumnTagged

La colonne est marquée. Les colonnes balisées n’occupent 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_bitColumnAutoincrement

La colonne est incrémentée automatiquement. Le nombre est un nombre croissant et il est garanti qu’il est unique au sein d’une table. Toutefois, le nombre peut ne pas être continu. Par exemple, si cinq lignes sont insérées dans une table, la colonne de création automatique peut contenir les valeurs { 1, 2, 6, 7, 8 }.

Windows 2000 : Ce bit ne peut être utilisé que sur des colonnes de type JET_coltypLong.

Windows Server 2003 et versions ultérieures : Ce bit ne peut être utilisé que sur des colonnes de type JET_coltypLong ou JET_coltypCurrency.

JET_bitColumnUpdatable

Ce bit est valide uniquement sur les appels à JetGetColumnInfo.

JET_bitColumnTTKey

Ce bit est valide uniquement sur les appels à JetOpenTempTable.

JET_bitColumnTTDescending

Ce bit est valide uniquement sur les 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 le membre itagSequence de différentes structures, par exemple, JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Les colonnes à valeurs multiples doivent être des colonnes balisées ; autrement dit, il ne peut pas s’agir de colonnes de longueur fixe ou variable.

JET_bitColumnEscrowUpdate

La 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 maintenir la cohérence transactionnelle.

  • 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 cbDefault doit être positive).

  • JET_bitColumnEscrowUpdate ne peut pas être utilisé conjointement avec les constantes suivantes :

    • JET_bitColumnTagged

    • JET_bitColumnVersion

    • JET_bitColumnAutoincrement

JET_bitColumnUnversioned

La colonne est créée sans version. Les 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 spécifie 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 la fonction de rappel , JET_CALLBACK. Une colonne dont la valeur par défaut est définie par l’utilisateur doit être une colonne balisée. pvDefault doit pointer vers une structure JET_USERDEFINEDDEFAULT , et cbDefault doit être défini sur sizeof(JET_USERDEFINEDDEFAULT).

JET_bitColumnUserDefinedDefault ne peut pas être utilisé conjointement avec les constantes suivantes :

  • JET_bitColumnFixed

  • JET_bitColumnNotNULL

  • JET_bitColumnVersion

  • JET_bitColumnAutoincrement

  • JET_bitColumnUpdatable

  • JET_bitColumnEscrowUpdate

  • JET_bitColumnFinalize

  • JET_bitColumnDeleteOnZero

  • JET_bitColumnMaybeNull

JET_bitColumnDeleteOnZero

La colonne est une colonne de mise à jour d’entiercement, et lorsqu’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.

pvDefault

Pointe vers une mémoire tampon qui sera la valeur par défaut d’une colonne. La longueur de la mémoire tampon est cbDefault. S’il n’existe aucune valeur par défaut, pvDefault doit avoir la valeur NULL et cbDefault doit avoir la valeur zéro. Si grbit a JET_bitColumnUserDefinedDefault défini, pvDefault est interprété comme un pointeur vers une structure JET_USERDEFINEDDEFAULT. Les valeurs par défaut ne peuvent pas dépasser 255 octets. Si une valeur par défaut est supérieure à 255 octets, elle est tronquée en mode silencieux.

cbDefault

Taille, en octets, de la mémoire tampon spécifiée par pvDefault.

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.

Columnid

En cas de réussite, l’identificateur de colonne de la colonne nouvellement créée est renvoyé dans ce champ. En cas d’échec, la valeur n’est pas définie.

err

Le champ d’erreur contient le status de création de cette colonne. Consultez JetAddColumn pour obtenir la liste des valeurs de retour probables.

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.

Unicode

Implémenté en tant que JET_COLUMNCREATE_W (Unicode) et JET_COLUMNCREATE_A (ANSI).

Voir aussi

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