JetCreateTableColumnIndex3 fonction)

S’applique à : Windows | Windows Serveurs

JetCreateTableColumnIndex3 fonction)

La fonction JetCreateTableColumnIndex3 crée une table dans une base de données ESE avec un ensemble initial d’index et un ensemble initial de colonnes à partir d’un tableau de structures JET_TABLECREATE3 . La structure JET_TABLECREATE3 permet de spécifier une fonction de rappel.

Windows 7 : JetCreateTableColumnIndex3 est introduit dans le système d’exploitation Windows 7.

    JET_ERR JET_API JetCreateTableColumnIndex3(
      __in          JET_SESID sesid,
      __in          JET_DBID dbid,
      __in_out      JET_TABLECREATE3* ptablecreate
    );

Paramètres

sesid

Contexte de la session de base de données à utiliser pour l’appel d’API.

dbid

Identificateur de base de données à utiliser pour l’appel d’API.

ptablecreate

Pointeur vers une structure JET_TABLECREATE3 qui définit la table à créer. Pour plus d’informations, consultez JET_TABLECREATE3 .

Valeur renvoyée

Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour suivants. pour plus d’informations sur les erreurs ESE possibles, consultez erreurs du moteur de Stockage Extensible et paramètres de gestion des erreurs.

Code de retour

Description

JET_errSuccess

L’opération s’est terminée avec succès.

JET_errCallbackNotResolved

La fonction de rappel n’a pas pu être résolue. La DLL n’a peut-être pas été trouvée, ou la fonction dans la DLL n’a peut-être pas été trouvée. Une fois la journalisation suffisante activée, le journal des événements fournit plus de détails.

JET_errCannotIndex

Une tentative d’indexation sur une colonne de dépôt/mise à jour ou SLV (Notez que les colonnes SLV sont dépréciées) a été tentée.

JET_errCannotNestDDL

Si ptablecreate- > Grbit spécifie JET_bitTableCreateTemplateTable, mais ptablecreate- > szTemplateTableName a la valeur null.

JET_errColumnDuplicate

Une colonne existe déjà.

JET_errColumnNotFound

Une tentative d’indexation sur une colonne inexistante a été effectuée. Toute tentative d’indexation conditionnelle sur une colonne inexistante peut également générer cette erreur.

JET_errColumnRedundant

Une tentative d’ajout d’une colonne redondante a été effectuée. Il ne doit y avoir qu’une seule colonne AutoIncrement et pas plus d’une colonne version par table.

JET_errDensityInvalid

Cette erreur est retournée si le membre ulDensity de la structure JET_INDEXCREATE2 est défini sur un nombre inférieur à 20 ou supérieur à 100.

JET_errDDLNotInheritable

Signifie que la table nommée dans le membre szTemplateTableName de la structure JET_TABLECREATE3 n’a pas été marquée comme table de modèle (autrement dit, cette table n’avait pas de JET_bitTableCreateTemplateTable définie).

JET_errIndexDuplicate

Une tentative de définition de deux index identiques a été effectuée.

JET_errIndexHasPrimary

Une tentative a été effectuée pour spécifier plusieurs index primaires pour une table. Une table doit avoir un seul index primaire. Si aucun index primaire n’est spécifié, le moteur de base de données en crée un en toute transparence.

JET_errIndexInvalidDef

Une définition d’index non valide a été spécifiée. Voici quelques-unes des raisons possibles de la réception de cette erreur :

  • Un index principal est conditionnel (autrement dit, le membre Grbit de la structure JET_INDEXCREATE2 a JET_bitIndexPrimary jeu et le membre cConditionalColumn de la structure JET_INDEXCREATE2 est supérieur à zéro).

  • Windows Le serveur 2003 et les versions ultérieures de Windows. La tentative de création d’un index de tuple avec des limites de tuple, mais sans passer le membre ptuplelimits dans la structure JET_INDEXCREATE2 (autrement dit, le membre Grbit de la structure JET_INDEXCREATE2 a JET_bitIndexTupleLimits défini, mais le pointeur ptuplelimits a la valeur null).

  • Passage d’une définition de clé non valide dans le membre szKey de la structure JET_INDEXCREATE2 . Pour plus d’informations sur les définitions valides, consultez JET_INDEXCREATE2 .

  • La définition du membre cbVarSegMac dans JET_INDEXCREATE2 est supérieure à JET_cbPrimaryKeyMost (pour un index principal) ou supérieure à JET_cbSecondaryKeyMost (pour un index secondaire).

  • Passage d’une combinaison non valide pour un index Unicode défini par l’utilisateur (un qui a le bit JET_bitIndexUnicode défini dans le membre Grbit de JET_INDEXCREATE2). Certaines causes courantes incluent le membre pidxunicode de la structure JET_INDEXCREATE2 a la valeur null, ou le LCID spécifié dans la structure pidxunicode n’est pas valide.

  • Spécification d’une colonne à valeurs multiples pour un index primaire.

  • Tentative d’indexation d’un trop grand nombre de colonnes conditionnelles. Le membre cConditionalColumn de la structure JET_INDEXCREATE2 ne doit pas être supérieur à JET_ccolKeyMost.

JET_errIndexTuplesInvalidLimits

Windows XP et versions ultérieures de Windows. Une structure de JET_TUPLELIMITS a été spécifiée et ses limites ne sont pas prises en charge. Consultez la section Notes de la structure JET_TUPLELIMITS .

JET_errIndexTuplesNonUniqueOnly

Windows XP et versions ultérieures de Windows. Un index de tuple ne peut pas être unique (autrement dit, le membre Grbit de la structure JET_INDEXCREATE2 ne doit pas avoir JET_bitIndexPrimary et JET_bitIndexUnique défini).

JET_errIndexTuplesOneColumnOnly

Windows XP et versions ultérieures de Windows. Un index de tuple ne peut être que sur une seule colonne (autrement dit, si le membre Grbit de la structure JET_INDEXCREATE2 a JET_bitIndexTuples jeu et que le membre szKey de la structure JET_INDEXCREATE2 spécifie plusieurs colonnes).

JET_errIndexTuplesSecondaryIndexOnly

Windows XP et versions ultérieures de Windows. Un index de tuple ne peut pas être un index primaire (autrement dit, le membre Grbit de la structure JET_INDEXCREATE2 ne doit pas avoir JET_bitIndexPrimary et JET_bitIndexTuples défini).

JET_errIndexTuplesTextColumnsOnly

Windows XP et versions ultérieures de Windows. Un index de tuple ne peut être que sur une colonne de type texte ou Unicode. Toute tentative d’index d’autres colonnes (telles que des colonnes binaires) entraîne JET_errIndexTuplesTextColumnsOnly.

JET_errIndexTuplesVarSegMacNotAllowed

Windows XP et versions ultérieures de Windows. Un index de tuple n’autorise pas la définition du membre cbVarSegMac de la structure JET_INDEXCREATE2 .

JET_errInTransaction

Une tentative de création d’un index sans informations de version a été effectuée dans une transaction.

JET_errInvalidCodePage

Le membre CP de la structure JET_COLUMNCREATE n’a pas été défini sur une page de codes valide. Les seules valeurs valides pour les colonnes de texte sont l’anglais (1252) et Unicode (1200). La valeur 0 signifie que la valeur par défaut sera utilisée (anglais, 1252).

JET_errInvalidColumnType

Le membre coltyp de la structure JET_COLUMNCREATE n’a pas été défini sur un type de colonne valide.

JET_errInvalidCreateIndex

Voici les raisons pour lesquelles cette erreur peut se produire :

  • Le membre rgindexcreate de la structure JET_TABLECREATE2 a la valeur null.

  • Le membre rgcolumncreate de la structure JET_TABLECREATE2 a la valeur null.

  • Le membre cbStruct d’une structure JET_INDEXCREATE2 n’a pas été défini sur une valeur valide.

JET_errInvalidgrbit

Une combinaison de membres Grbit non valide a été spécifiée dans JET_TABLECREATE3.

La définition de l’index n’est pas valide, car le membre Grbit contient des valeurs incohérentes. Voici quelques raisons possibles :

  • Un index primaire a un bit ignore spécifié (autrement dit, JET_bitIndexPrimary a été passé avec JET_bitIndexIgnoreNull, JET_bitIndexIgnoreAnyNull ou JET_bitIndexIgnoreFirstNull).

  • Un index vide n’ignore pas les membres NULL (autrement dit, le membre Grbit de la structure JET_INDEXCREATE2 n’a JET_bitIndexEmpty défini, mais n’a pas de JET_bitIndexIgnoreAnyNull défini).

  • Passage d’une structure JET_CONDITIONALCOLUMN avec un membre Grbit non valide.

JET_errInvalidLanguageId

Un ID de paramètres régionaux (LCID) non valide a été transmis (par le biais du membre LCID de la structure JET_UNICODEINDEX qui est référencée par le membre pidxunicode dans la structure JET_INDEXCREATE2 ou par le champ LCID de la structure JET_INDEXCREATE2 ).

JET_errInvalidParameter

Un paramètre non valide a été spécifié. Voici quelques raisons possibles :

  • Le membre rgcolumncreate de la structure JET_TABLECREATE3 a la valeur null.

  • Le membre cbStruct de l’une des structures JET_COLUMNCREATE données dans le membre rgcolumncreate de la structure JET_TABLECREATE2 n’a pas la valeur sizeof (JET_COLUMNCREATE).

  • Le membre cbKey d’une structure JET_INDEXCREATE2 a la valeur zéro.

  • Le membre cbStruct d’une structure JET_INDEXCREATE2 n’a pas la valeur sizeof (JET_INDEXCREATE2).

JET_errRecordTooBig

L’enregistrement est trop volumineux. La somme du membre cbMax de la structure JET_COLUMNCREATE pour toutes les colonnes fixes ne doit pas dépasser une certaine valeur.

JET_errTableDuplicate

La table existe déjà.

JET_errTooManyColumns

Une tentative d’ajout d’un trop grand nombre de colonnes à la table a été effectuée. Une table ne peut pas comporter plus de JET_ccolFixedMost colonnes fixes, ni plus de JET_ccolVarMost colonnes de longueur variable, ni plus de JET_ccolTaggedMost colonnes avec balises.

JET_errUnicodeTranslationFail

Une erreur s’est produite lors de la normalisation d’une colonne Unicode. Cela peut être dû à un manque de ressources système.

JET_errSpaceHintsInvalid

Un élément de la structure d’indicateurs d’espace JET n’est pas correct ou n’est pas exploitable.

Notes

Le nom JetCreateTableColumnIndex3 provient de l’ordre de création des objets : il crée d’abord une table, des colonnes, puis enfin des index. JetCreateTableColumnIndex3 crée une table avec un ensemble initial de colonnes et d’index. Des colonnes et des index supplémentaires peuvent être ajoutés et supprimés dynamiquement avec JetAddColumn, JetDeleteColumn, JetDeleteColumn2, JetCreateIndex, JetCreateIndex2, JetCreateIndex3et JetDeleteIndex.

Comme JetOpenTable, lorsque l’application est effectuée à l’aide de l' TableID retourné, elle doit généralement être fermée avec JetCloseTable.

Spécifications

Condition requise Valeur

Client

requiert Windows Vista ou Windows XP.

Serveur

requiert Windows server 2008 ou Windows server 2003.

En-tête

Déclaré dans esent. h.

Bibliothèque

Utilisez ESENT. lib.

DLL

Requiert ESENT.dll.

Unicode

Implémenté en tant que JetCreateTableColumnIndex3W (Unicode) et JetCreateTableColumnIndex3A (ANSI).

Voir aussi

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