JetGetCurrentIndex fonction)

S’applique à : Windows | Windows Serveurs

JetGetCurrentIndex fonction)

La fonction JetGetCurrentIndex détermine le nom de l’index actuel d’un curseur donné. Ce nom est également utilisé pour resélectionner ultérieurement cet index comme index actuel à l’aide de JetSetCurrentIndex. Elle peut également être utilisée 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 de terminer l’opération, car toute activité sur l’instance associée à la session a été interrompue suite à un appel à JetStopService.

JET_errInstanceUnavailable

Il n’est pas possible de terminer l’opération, car l’instance associée à la session a rencontré une erreur irrécupérable qui requiert que l’accès à toutes les données soit révoqué pour protéger l’intégrité de ces données. cette erreur est renvoyée uniquement par Windows XP et les versions ultérieures.

JET_errNotInitialized

Impossible de terminer l’opération, car l’instance associée à la session n’a pas encore été initialisée.

JET_errRestoreInProgress

Il n’est pas possible de terminer l’opération, car une opération de restauration est en cours sur l’instance associée à la session.

JET_errSessionSharingViolation

La même session ne peut pas être utilisée simultanément pour plusieurs threads. cette erreur est renvoyée uniquement par Windows XP et les versions ultérieures.

JET_errTermInProgress

Il n’est pas possible de terminer l’opération, car l’instance associée à 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 l’intégralité du nom de l’index.

La mémoire tampon de sortie a été remplie avec la plus grande partie du nom de l’index. Si la mémoire tampon de sortie a au moins un caractère de longueur, la chaîne de cette mémoire tampon de sortie se termine par une valeur null.

Remarque Cette erreur n’est pas renvoyée si cchIndexName est égal à zéro. Pour plus d’informations, consultez la section Notes.

En cas de réussite, le nom de l’index actuel du curseur donné sera retourné dans la mémoire tampon de sortie. Si JET_wrnBufferTruncated est retourné, la mémoire tampon de sortie contiendra la plus grande partie du nom d’index, comme dans l’espace prévu à cet effet. Si la mémoire tampon de sortie a au moins un caractère de longueur, alors la chaîne retournée dans cette mémoire tampon se termine par une valeur null. Aucune modification de l’état de la base de données ne se produit.

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 produit.

Notes

S’il n’y a pas d’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 primaire n’a été défini. Cet index est appelé index séquentiel de la table et n’a pas de définition. Dans tous les cas, la définition de l’index actuel sur une chaîne vide à l’aide de JetSetCurrentIndex sélectionne l’index cluster, quelle que soit la présence d’une définition d’index primaire.

Il existe un bogue important dans cette fonction qui est présent dans toutes les versions. Si la mémoire tampon de sortie est trop petite pour recevoir l’intégralité du nom de l’index et que la mémoire tampon de sortie a au moins un caractère de longueur, JET_wrnBufferTruncated ne sera pas retourné. JET_errSuccess est retourné à la place. Pour éviter ce problème, la longueur de la mémoire tampon de sortie doit toujours être d’au moins JET_cbNameMost + 1 (65) caractères.

Spécifications

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 JetGetCurrentIndexW (Unicode) et JetGetCurrentIndexA (ANSI).

Voir aussi

JET_ERR
JET_SESID
JET_TABLEID
JetGetTableIndexInfo
JetSetCurrentIndex