Fonction JetCreateIndex3
S’applique à : Windows | Windows Serveurs
Fonction JetCreateIndex3
La fonction JetCreateIndex3 crée des index sur les données d’une base de données ESE, qui peut être utilisée pour localiser rapidement des données spécifiques.
Windows 7 : JetCreateIndex3 est introduit dans le système d’exploitation Windows 7.
JET_ERR JET_API JetCreateIndex3(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
Paramètres
sesid
Contexte de la 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 , qui définissent chacune un index à créer.
cIndexCreate
Nombre d’éléments dans le tableau pindexcreate .
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_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_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_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 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 raisons possibles pour la réception de cette erreur :
|
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 (Grbit ne doit pas avoir à la fois JET_bitIndexTuples 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, le membre Grbit de la structure JET_INDEXCREATE2 a JET_bitIndexTuples jeu et 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. Si vous tentez d’indexer d’autres colonnes (par exemple, des colonnes binaires), 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_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é passé (par le biais du membre LCID dans la structure JET_UNICODEINDEX , que le membre pidxunicode dans la structure JET_INDEXCREATE2 contient un pointeur vers ou 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 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. |
Remarques
La valeur de retour est JET_errSuccess en cas d’achèvement réussi de tous les index spécifiés.
JetCreateIndex3 itère au sein des index donnés dans pindexcreate, et s’abandonne parfois lors du premier échec. Les index qui suivent le premier index avec une erreur n’ont peut-être pas été tentés, même si le membre Err de la structure JET_INDEXCREATE2 contient des JET_errSuccess.
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 JetCreateIndex3W (Unicode) et JetCreateIndex3A (ANSI). |
Voir aussi
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS