Fonction JetDupCursor

S’applique à : Windows | Windows Server

Fonction JetDupCursor

La fonction JetDupCursor duplique un curseur ouvert et retourne une poignée au curseur dupliqué. Si le curseur qui a été dupliqué était un curseur en lecture seule, le curseur dupliqué est également un curseur en lecture seule. Tout état lié à la construction d’une clé de recherche ou à la mise à jour d’un enregistrement n’est pas copié dans le curseur dupliqué. En outre, l’emplacement du curseur d’origine n’est pas dupliqué dans le curseur dupliqué. Le curseur dupliqué est toujours ouvert sur l’index cluster et son emplacement se trouve toujours sur la première ligne de la table.

    JET_ERR JET_API JetDupCursor(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_TABLEID* ptableid,
      __in          JET_GRBIT grbit
    );

Paramètres

sesid

Session à utiliser pour cet appel.

tableid

Curseur à utiliser pour cet appel.

ptableid

Pointeur vers tableid.

grbit

Réservé pour un usage futur.

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_errOutOfCursors

Il n’existe aucune ressource de curseur disponible.

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, ptableid est défini sur un curseur dupliqué.

En cas d’échec, aucune modification n’est apportée. L’état de tableid est inchangé.

Notes

L’état du curseur dupliqué n’est pas copié. L’emplacement du curseur dupliqué, y compris l’index actuel, est généralement différent du curseur donné. Le curseur dupliqué est toujours retourné sur l’index cluster et sur la première ligne de la table. Si la table est vide, le curseur dupliqué ne se trouve sur aucune ligne.

Les tables ouvertes avec JetDupCursor doivent généralement être fermées avec JetCloseTable. L’exception à cette règle se produit lorsque JetDupCursor est appelé dans une transaction et que la transaction est restaurée (avec JetRollback). Lors de la restauration d’une transaction, le curseur est automatiquement fermé. Dans ce cas, la fermeture de la table avec JetCloseTable est une erreur.

Le nombre de tables pouvant être ouvertes simultanément est directement affecté par JET_paramMaxOpenTables. Pour plus d’informations, consultez Paramètres système .

Configuration requise

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.

Voir aussi

JET_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
Paramètres système