Fonction JetGetCurrentIndex
S’applique à : Windows | Windows Server
Fonction JetGetCurrentIndex
La fonction JetGetCurrentIndex détermine le nom de l’index actuel d’un curseur donné. Ce nom est également utilisé pour sélectionner ultérieurement cet index en tant qu’index actuel à l’aide de JetSetCurrentIndex. Il peut également être utilisé pour découvrir les propriétés de cet index à l’aide de JetGetTableIndexInfo.
JET_ERR JET_API JetGetCurrentIndex(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_PSTR szIndexName,
__in unsigned long cchIndexName
);
Paramètres
sesid
Session à utiliser pour cet appel.
tableid
Curseur à utiliser pour cet appel.
szIndexName
Mémoire tampon de sortie qui reçoit le nom de l’index actuel du curseur.
cchIndexName
Taille maximale en caractères de la mémoire tampon de sortie.
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_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_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_errNotInitialized |
Il n’est pas possible d’effectuer l’opération, car le instance associé à la session n’a pas encore été initialisé. |
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. |
JET_wrnBufferTruncated |
L’opération s’est terminée correctement, mais la mémoire tampon de sortie était trop petite pour recevoir le nom d’index entier. La mémoire tampon de sortie a été remplie avec autant de nom d’index qu’il le faudrait. Si la mémoire tampon de sortie est d’au moins un caractère, la chaîne de cette mémoire tampon de sortie est terminée par null. Note Cette erreur n’est pas retournée si cchIndexName est égal à zéro. Pour plus d’informations, consultez la section Remarques. |
En cas de réussite, le nom de l’index actuel du curseur donné est retourné dans la mémoire tampon de sortie. Si JET_wrnBufferTruncated est retourné, la mémoire tampon de sortie contiendra autant de nom d’index que nécessaire dans l’espace fourni. Si la mémoire tampon de sortie est d’au moins un caractère, la chaîne retournée dans cette mémoire tampon sera terminée par null. Aucune modification de l’état de la base de données ne se produira.
En cas d’échec, l’état de la mémoire tampon de sortie n’est pas défini. Aucune modification de l’état de la base de données ne se produira.
Notes
S’il n’existe aucun index actuel pour le curseur, une chaîne vide est retournée. Cela peut se produire lorsque le curseur se trouve sur l’index cluster de la table et qu’aucun index principal n’a été défini. Cet index est connu sous le nom d’index séquentiel de la table et n’a aucune définition. Dans tous les cas, si vous définissez l’index actuel sur une chaîne vide à l’aide de JetSetCurrentIndex , vous sélectionnez l’index cluster, quelle que soit la présence d’une définition d’index principal.
Cette fonction présente un bogue important dans toutes les versions. Si la mémoire tampon de sortie est trop petite pour recevoir le nom entier de l’index et que la mémoire tampon de sortie contient au moins un caractère, JET_wrnBufferTruncated ne sera PAS retourné. JET_errSuccess sera retourné à la place. Pour éviter ce problème, la mémoire tampon de sortie doit toujours comporter au moins JET_cbNameMost + 1 (65) caractères.
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 JetGetCurrentIndexW (Unicode) et JetGetCurrentIndexA (ANSI). |
Voir aussi
JET_ERR
JET_SESID
JET_TABLEID
JetGetTableIndexInfo
JetSetCurrentIndex