Fonction JetCreateTableColumnIndex3
S’applique à : Windows | Windows Server
Fonction JetCreateTableColumnIndex3
La fonction JetCreateTableColumnIndex3 crée une table dans une base de données ESE avec un jeu 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 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 activée, le journal des événements fournit plus de détails. |
JET_errCannotIndex |
Une tentative d’indexation a été effectuée sur une colonne de mise à jour d’entiercement ou SLV (notez que les colonnes SLV sont déconseillées). |
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 a été effectuée sur une colonne inexistante. Une 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 pas y avoir plus d’une colonne de création automatique et pas plus d’une colonne de 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 JET_bitTableCreateTemplateTable défini). |
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 principaux pour une table. Une table doit avoir exactement un index principal. Si aucun index principal 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 recevoir cette erreur :
|
JET_errIndexTuplesInvalidLimits |
Windows XP et versions ultérieures de Windows. Une structure JET_TUPLELIMITS a été spécifiée et ses limites ne sont pas prises en charge. Consultez la section remarques 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 à la fois JET_bitIndexPrimary et JET_bitIndexUnique défini). |
JET_errIndexTuplesOneColumnOnly |
Windows XP et versions ultérieures de Windows. Un index de tuple ne peut se trouver que sur une seule colonne (autrement dit, si le membre grbit de la structure JET_INDEXCREATE2 a JET_bitIndexTuples défini 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 principal (autrement dit, le membre grbit de la structure JET_INDEXCREATE2 ne doit pas avoir à la fois JET_bitIndexPrimary et JET_bitIndexTuples défini). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP et versions ultérieures de Windows. Un index de tuple ne peut se trouver que sur une colonne texte ou Unicode. Une tentative d’indexer 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 lors d’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 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 quelques raisons pour lesquelles cette erreur peut se produire :
|
JET_errInvalidgrbit |
Une combinaison non valide de membres grbit a été spécifiée dans JET_TABLECREATE3. La définition d’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 vers laquelle pointe le membre pidxunicode dans la structure JET_INDEXCREATE2 , ou via le champ lcid de la structure JET_INDEXCREATE2 ). |
JET_errInvalidParameter |
Un paramètre non valide a été donné. Voici quelques raisons possibles :
|
JET_errRecordTooBig |
Le disque est trop grand. 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 avoir plus de JET_ccolFixedMost colonnes fixes, pas plus de JET_ccolVarMost colonnes de longueur variable et pas plus de JET_ccolTaggedMost colonnes balisées. |
JET_errUnicodeTranslationFail |
Une erreur s’est produite lors de la tentative de normalisation d’une colonne Unicode. Cela peut être dû à l’épuisement des ressources système. |
JET_errSpaceHintsInvalid |
Un élément de la structure des indicateurs d’espace JET n’était pas correct ou ne peut pas être actionnable. |
Notes
Le nom JetCreateTableColumnIndex3 provient de l’ordre de création des objets : il crée d’abord une table, des colonnes, puis 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, JetCreateIndex3 et JetDeleteIndex.
Comme JetOpenTable, lorsque l’application est terminée à l’aide du tableid retourné, elle doit généralement être fermée avec JetCloseTable.
Spécifications
Condition requise | Valeur |
---|---|
Client |
Nécessite Windows Vista ou Windows XP. |
Serveur |
Nécessite Windows Server 2008 ou Windows Server 2003. |
En-tête |
Déclaré dans Esent.h. |
Bibliothèque |
Utilisez ESENT.lib. |
DLL |
Nécessite 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