JetCreateTableColumnIndex fonction)
S’applique à : Windows | Windows Serveurs
JetCreateTableColumnIndex fonction)
La fonction JetCreateTableColumnIndex 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_TABLECREATE . Le nom JetCreateTableColumnIndex provient de l’ordre de création des objets. Elle crée d’abord une table, des colonnes, puis enfin des index.
JET_ERR JET_API JetCreateTableColumnIndex(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE* 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_TABLECREATE qui définit la table à créer. Pour plus d’informations, consultez JET_TABLECREATE .
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_INDEXCREATE 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_TABLECREATE 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 :
|
JET_errIndexTuplesInvalidLimits |
Windows XP et versions ultérieures. 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. Un index de tuple ne peut pas être unique (autrement dit, le membre Grbit de la structure JET_INDEXCREATE ne doit pas avoir JET_bitIndexPrimary et JET_bitIndexUnique défini). |
JET_errIndexTuplesOneColumnOnly |
Windows XP et versions ultérieures. Un index de tuple ne peut être que sur une seule colonne (autrement dit, si le membre Grbit de la structure JET_INDEXCREATE a JET_bitIndexTuples jeu et que le membre szKey de la structure JET_INDEXCREATE spécifie plusieurs colonnes). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP et versions ultérieures. Un index de tuple ne peut pas être un index primaire (autrement dit, le membre Grbit de la structure JET_INDEXCREATE ne doit pas avoir JET_bitIndexPrimary et JET_bitIndexTuples défini). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP et versions ultérieures. 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. Un index de tuple n’autorise pas la définition du membre cbVarSegMac de la structure JET_INDEXCREATE . |
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 |
Cette erreur peut se produire pour les raisons suivantes :
|
JET_errInvalidgrbit |
Une combinaison de membres Grbit non valide a été spécifiée dans JET_TABLECREATE ou JET_TABLECREATE2. La définition de l’index n’est pas valide, car le membre Grbit contient des valeurs incohérentes. Voici quelques raisons possibles :
|
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_INDEXCREATE ou par le champ LCID de la structure JET_INDEXCREATE ). |
JET_errInvalidParameter |
Un paramètre non valide a été spécifié. Voici quelques raisons possibles :
|
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. |
Remarques
L’appel de JetCreateTableColumnIndex est identique à l’appel de JetCreateTableColumnIndex2, avec chaque champ de la structure JET_TABLECREATE2 contenant la valeur du champ correspondant de JET_TABLECREATE, avec les exceptions suivantes :
JET_TABLECREATE2. cbStruct défini sur sizeof (JET_TABLECREATE2)
JET_TABLECREATE2. szCallback défini sur NULL
JET_TABLECREATE2. cbtyp défini sur 0
Pour plus d’informations, consultez JetCreateTableColumnIndex2 .
Comme JetOpenTable, lorsque l’application est effectuée à l’aide de l' TableID retourné, elle doit généralement être fermée avec JetCloseTable.
Configuration requise
| Condition requise | Valeur |
|---|---|
Client |
requiert Windows Vista, Windows XP ou Windows 2000 Professional. |
Serveur |
nécessite Windows server 2008, Windows server 2003 ou Windows 2000 server. |
En-tête |
Déclaré dans esent. h. |
Bibliothèque |
Utilisez ESENT. lib. |
DLL |
Requiert ESENT.dll. |
Unicode |
Implémenté en tant que JetCreateTableColumnIndexW (Unicode) et JetCreateTableColumnIndexA (ANSI). |
Voir aussi
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2