Fonction JetCreateIndex4W
S’applique à : Windows | Windows Server
La fonction JetCreateIndex4W crée des index sur des données dans une base de données ESE (Extensible Storage Engine), qui peut être utilisée pour localiser rapidement des données spécifiques.
La fonction JetCreateIndex4W a été introduite dans le système d’exploitation Windows 8.
JET_ERR JET_API JetCreateIndex4W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
Paramètres
sesid
Contexte de session de base de données à utiliser pour l’appel d’API.
tableid
Table sur laquelle l’index sera créé.
pindexcreate
Tableau de structures JET_INDEXCREATE2 , chacune définissant un index à créer.
cIndexCreate
Nombre d’éléments dans le tableau pindexcreate .
Valeur retournée
Cette fonction retourne le type de données JET_ERR avec l’un des codes de retour répertoriés dans le tableau suivant. 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_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_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_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_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 cette erreur :
|
JET_errIndexTuplesInvalidLimits |
S’applique aux versions de Windows commençant par Windows XP. Une structure JET_TUPLELIMITS a été spécifiée et ses limites ne sont pas prises en charge. Pour plus d’informations, consultez la section Remarques de la structure JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
S’applique aux versions de Windows commençant par Windows XP. Un index de tuple ne peut pas être unique (grbit ne doit pas avoir à la fois JET_bitIndexTuples et JET_bitIndexUnique défini). |
JET_errIndexTuplesOneColumnOnly |
S’applique aux versions de Windows commençant par Windows XP. Un index de tuple ne peut se trouver que sur une seule colonne (autrement dit, le membre grbit de la structure JET_INDEXCREATE2 a JET_bitIndexTuples défini, et le membre szKey de la structure JET_INDEXCREATE2 spécifie plusieurs colonnes). |
JET_errIndexTuplesSecondaryIndexOnly |
S’applique aux versions de Windows commençant par Windows XP. Un index 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 |
S’applique aux versions de Windows commençant par Windows XP. Un index de tuple ne peut se trouver que sur une colonne texte ou Unicode. Une tentative d’indexation d’autres colonnes (par exemple, des colonnes binaires) entraîne JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
S’applique aux versions de Windows commençant par Windows XP. 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_errInvalidgrbit |
La définition de l’index n’est pas valide, car le membre grbit de la structure JET_INDEXCREATE2 contient des valeurs incohérentes. Voici quelques raisons possibles :
Lors de la création de plusieurs index à la fois (autrement dit, si le paramètre cIndexCreate est supérieur à un), aucun des index ne peut contenir l’un des bits suivants :
|
JET_errInvalidLanguageId |
Un ID de paramètres régionaux (LCID) non valide a été transmis (soit via le membre lcid de la structure JET_UNICODEINDEX , auquel le membre pidxunicode de la structure JET_INDEXCREATE2 contient un pointeur, soit via le membre lcid de la structure JET_INDEXCREATE2 ). |
JET_errInvalidName |
Un nom d’index non valide a été spécifié. Pour plus d’informations, consultez JET_INDEXCREATE2 . |
JET_errInvalidParameter |
Un paramètre non valide a été passé dans l’API. Voici quelques raisons pour lesquelles cette erreur peut être retournée :
|
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
La fonction JetCreateIndex4W itère au sein des index donnés dans le paramètre pindexcreate et abandonne parfois lors du premier échec. Les index après le premier index avec une erreur peuvent ne pas avoir été tentés, même si le membre err de la structure JET_INDEXCREATE2 contient JET_errSuccess.
Spécifications
Condition requise | Valeur |
---|---|
Client |
Nécessite Windows 8. |
Serveur |
Nécessite Windows Server 2012. |
En-tête |
Déclaré dans Esent.h. |
Bibliothèque |
Utilisez ESENT.lib. |
DLL |
Nécessite ESENT.dll. |
Voir aussi
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS