Fonction JetGetBookmark
S’applique à : Windows | Windows Server
Fonction JetGetBookmark
La fonction JetGetBookmark récupère le signet de l’enregistrement associé à l’entrée d’index à la position actuelle d’un curseur. Ce signet peut ensuite être utilisé pour repositionner ce curseur sur le même enregistrement à l’aide de JetGoToBookmark.
JET_ERR JET_API JetGetBookmark(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out_opt void* pvBookmark,
__in unsigned long cbMax,
__out_opt unsigned long* pcbActual
);
Paramètres
sesid
Session à utiliser pour cet appel.
tableid
Curseur à utiliser pour cet appel.
pvBookmark
Mémoire tampon de sortie qui reçoit le signet.
cbMax
Taille maximale, en octets, de la mémoire tampon de sortie.
pcbActual
Taille réelle, en octets, du signet.
Si ce paramètre a la valeur NULL , la taille réelle du signet n’est pas retournée.
Si la mémoire tampon de sortie est trop petite, la taille réelle du signet est toujours retournée. Cela signifie que ce nombre sera supérieur à la taille 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_errBufferTooSmall |
L’opération s’est terminée correctement, mais la mémoire tampon de sortie était trop petite pour recevoir l’intégralité du signet. La mémoire tampon de sortie a été remplie avec autant de signets que vous le souhaitez. La taille réelle du signet a également été retournée, si demandé. |
JET_errClientRequestToStopJetService |
L’opération ne peut pas se terminer, car toutes les activités sur le instance associée à la session ont cessé à la suite d’un appel à JetStopService. |
JET_errInstanceUnavailable |
L’opération ne peut pas se terminer, 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. Windows XP : Ces valeurs de retour sont introduites dans Windows XP. |
JET_errNoCurrentRecord |
Le curseur n’est pas positionné sur un enregistrement. Cela peut se produire pour de nombreuses raisons différentes. Par exemple, cela se produit si le curseur est positionné après le dernier enregistrement de l’index actuel. |
JET_errNotInitialized |
L’opération ne peut pas se terminer, car le instance associé à la session n’a pas encore été initialisé. |
JET_errRestoreInProgress |
L’opération ne peut pas se terminer, 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. Windows XP : Cette valeur de retour est introduite dans Windows XP. |
JET_errTermInProgress |
L’opération ne peut pas se terminer, car le instance associé à la session est en cours d’arrêt. |
Si cette fonction réussit, le signet de l’enregistrement associé à l’entrée d’index à la position actuelle d’un curseur est retourné dans la mémoire tampon de sortie. Aucune modification de l’état de la base de données ne se produira.
Si cette fonction échoue, l’état de la mémoire tampon de sortie et la taille réelle du signet ne sont pas définis, sauf si JET_errBufferTooSmall a été retourné. Dans le cas où JET_errBufferTooSmall est retourné, la mémoire tampon de sortie contient autant de signets que cela correspond à l’espace fourni et la taille réelle du signet est exacte. Aucune modification de l’état de la base de données ne se produira.
Notes
Les signets doivent généralement être traités comme des blocs opaques de données. Aucune tentative ne doit être effectuée pour exploiter la structure interne de ces données. Toutefois, les conditions suivantes sont remplies pour tous les signets ESENT :
Un signet identifie de manière unique un enregistrement dans une table donnée.
Le signet d’un enregistrement ne change pas pendant la durée de vie de cet enregistrement.
Le signet d’un enregistrement est identique à la clé de cet enregistrement sur l’index principal sur la table contenant cet enregistrement. Si aucun index principal n’est défini sur cette table, le moteur de base de données crée son propre signet pour l’enregistrement.
Les signets peuvent être comparés les uns aux autres à l’aide de la fonction memcmp pour établir leur ordre relatif dans l’index principal sur la table des enregistrements sources. Si aucun index principal n’est défini sur cette table, il n’est pas utile d’utiliser l’ordre relatif des signets de cette table.
Il est inutile de comparer les signets d’enregistrements de différentes tables les uns aux autres.
Un signet est toujours inférieur ou égal à JET_cbBookmarkMost (256) octets, avant Windows Vista.
Windows Vista : Sur Windows Vista et les versions ultérieures, les signets peuvent être supérieurs à JET_cbBookmarkMost (256) octets. La taille maximale d’un signet est égale à la valeur actuelle de JET_paramKeyMost + 1.
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. |
Voir aussi
JET_ERR
JET_SESID
JET_TABLEID
JetGoToBookmark
JetStopService
memcmp