Fonction JetSetCurrentIndex
S’applique à : Windows | Windows Server
Fonction JetSetCurrentIndex
La fonction JetSetCurrentIndex peut être utilisée pour définir l’index actuel d’un curseur. L’index actuel d’un curseur définit les enregistrements d’une table qui sont visibles par ce curseur et l’ordre dans lequel ils apparaissent en sélectionnant l’ensemble d’entrées d’index à utiliser pour exposer ces enregistrements.
JET_ERR JET_API JetSetCurrentIndex(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in_opt const tchar* szIndexName
);
Paramètres
sesid
Session à utiliser pour cet appel.
tableid
Curseur à utiliser pour cet appel.
szIndexName
Nom de l’index à sélectionner pour le curseur.
Si ce paramètre a la valeur NULL ou une chaîne vide, l’index cluster est sélectionné. Si un index principal est défini pour la table, cet index sera sélectionné, car il est identique à l’index cluster. Si aucun index principal n’est défini pour la table, l’index séquentiel est sélectionné. L’index séquentiel n’a aucune définition d’index. Pour plus d’informations, consultez JetCreateIndex .
Si pindexid n’a pas la valeur NULL, le nom de l’index est ignoré et l’index est sélectionné par son ID d’index.
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_errBadItagSequence |
Un index secondaire est sélectionné avec l’option JET_bitNoMove et il n’existe aucune valeur pour la première colonne clé à valeurs multiples dans la définition du nouvel index qui correspond au numéro de séquence spécifié. |
JET_errClientRequestToStopJetService |
Il n’est pas possible d’effectuer l’opération, car toutes les activités sur le instance associées à la session ont cessé à la suite d’un appel à JetStopService. |
JET_errInvalidIndexId |
Le contenu de l’ID d’index n’était pas valide ou a expiré et doit être actualisé. Cela peut se produire pour JetSetCurrentIndex dans les cas suivants :
|
JET_errInstanceUnavailable |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session a rencontré une erreur irrécupérable qui exige que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données. Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures. |
JET_errInvalidName |
L’un des noms d’objets spécifiés n’était pas valide. Tous les noms d’objets doivent être conformes au même ensemble de règles. Ces règles sont les suivantes :
|
JET_errInvalidParameter |
L’un des paramètres fournis contenait une valeur inattendue ou contenait une valeur qui n’était pas logique lorsqu’elle était combinée à la valeur d’un autre paramètre. Cela peut se produire pour JetSetCurrentIndex lorsque pindexid n’a pas la valeur NULL et que pindexid-cbStruct> n’est pas de la taille attendue (Windows XP et versions antérieures). |
JET_errNoCurrentRecord |
Un index secondaire est sélectionné avec l’option JET_bitNoMove et il n’existe aucune entrée d’index dans le nouvel index qui correspond à l’enregistrement associé à l’entrée d’index à la position actuelle du curseur sur l’ancien index. |
JET_errNotInitialized |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session n’a pas encore été initialisé. |
JET_errOutOfCursors |
Le moteur a épuisé son pool de ressources utilisées pour ouvrir les curseurs. Le nombre maximal de curseurs pouvant être ouverts à tout moment est contrôlé à l’aide de JET_paramMaxCursors. Pour plus d’informations, consultez JetSetSystemParameter . Cela peut se produire pour JetSetCurrentIndex lorsqu’un index secondaire a été sélectionné et que le moteur ne peut pas ouvrir un curseur interne pour utiliser cet index. |
JET_errRestoreInProgress |
Il n’est pas possible d’effectuer l’opération, car une opération de restauration est en cours sur le instance associé à la session. |
JET_errSessionSharingViolation |
La même session ne peut pas être utilisée pour plusieurs threads en même temps. Cette erreur sera retournée uniquement par Windows XP et les versions ultérieures. |
JET_errTermInProgress |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session est en cours d’arrêt. |
En cas de réussite, l’index actuel du curseur est défini sur l’index demandé. Les entrées d’index peuvent maintenant être recherchées à l’aide de JetSeek en fonction de la définition d’index de l’index demandé. Les entrées d’index peuvent également être énumérées à l’aide de JetMove dans l’ordre spécifié par cette définition d’index. La position actuelle du curseur est définie sur la première entrée d’index de l’index (JET_bitMoveFirst) ou sur une entrée d’index spécifique liée à la position actuelle du curseur sur l’ancien index (JET_bitNoMove). Aucune modification de l’état de la base de données ne se produira.
En cas d’échec, l’index actuel et la position actuelle du curseur sont dans un état non défini. Aucune modification de l’état de la base de données ne se produira.
Notes
Si l’indicateur d’ID d’index est obsolète, l’API échoue tout simplement. Il n’y a pas de secours au nom de texte de l’index dans ce cas, comme on peut s’y attendre. Ce secours doit être effectué manuellement par l’appelant de l’API.
Spécifications
Condition requise | Valeur |
---|---|
Client |
Nécessite Windows Vista, Windows XP ou Windows 2000 Professionnel. |
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 |
Nécessite ESENT.dll. |
Unicode |
Implémenté en tant que JetSetCurrentIndexW (Unicode) et JetSetCurrentIndexA (ANSI). |
Voir aussi
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXID
JetCreateIndex
JetGetCurrentIndex
JetGetIndexInfo
JetGetTableIndexInfo
JetMove
JetSeek
JetSetCurrentIndex
JetSetSystemParameter
JetStopService