Partager via


Méthode ILog ::ReadRecord (txlogpub.h)

Lire un enregistrement à partir du journal.

Syntaxe

HRESULT ReadRecord(
  [in]      LSN   lsnToRead,
  [in, out] LSN   *plsnPrev,
  [in, out] LSN   *plsnNext,
  [out]     BYTE  **ppbData,
  [out]     ULONG *pcbData
);

Paramètres

[in] lsnToRead

LSN de l’enregistrement à lire.

[in, out] plsnPrev

Pointeur vers le numéro LSN de l’enregistrement précédent (l’enregistrement qui précède immédiatement l’enregistrement à lire). Ce paramètre peut être NULL si le LSN de l’enregistrement précédent n’est pas nécessaire. Ce paramètre a la valeur 0 s’il n’y a pas d’enregistrement précédent dans le journal ou si une erreur se produit.

[in, out] plsnNext

Pointeur vers le numéro LSN de l’enregistrement suivant (l’enregistrement qui suit immédiatement l’enregistrement à lire). Ce paramètre peut être NULL si le LSN de l’enregistrement suivant n’est pas nécessaire. Ce paramètre est MAXLSN (0x7FFFFFFFFFFFFFFF) s’il n’existe aucun enregistrement suivant dans le journal. Ce paramètre est 0 si une erreur se produit.

[out] ppbData

Pointeur vers une variable qui contiendra un pointeur vers les données d’enregistrement au retour. La mémoire de ces données est allouée par ReadRecord et libérée par l’appelant (voir CoTaskMemFree). Ce paramètre a la valeur NULL si une erreur se produit.

[out] pcbData

Pointeur vers une variable qui reçoit la taille des données d’enregistrement, en octets, au retour.

Valeur retournée

Cette méthode peut retourner les valeurs suivantes, ainsi que d’autres valeurs HRESULT .

Code de retour Description
S_OK
L’enregistrement a été lu avec succès à partir du journal.
XACT_E_INVALIDLSN
lsnToRead est en dehors des limites actuelles du journal. Consultez ILog ::GetLogLimits.
E_INVALIDARG
lsnToRead se trouve dans les limites actuelles du journal, mais il ne s’agit pas du numéro de sécurité d’un enregistrement dans le journal.
E_OUTOFMEMORY
L’enregistrement n’a pas été retourné en raison d’un manque de mémoire.

Remarques

Bien que les enregistrements ajoutés au journal à l’aide de ILog ::AppendRecord puissent être concaténés à partir de plusieurs objets BLOB, ReadRecord retourne l’enregistrement en tant qu’objet blob opaque unique de données. ILog ne fournit aucune méthode pour extraire des objets BLOB individuels de l’enregistrement. Il incombe à l’appelant d’analyser les données dans les enregistrements retournés par ReadRecord.

Remarques aux appelants

Si le journal contient des enregistrements très volumineux, cette méthode peut échouer, car ReadRecord n’a pas pu allouer suffisamment de mémoire pour les données d’enregistrement. Si la taille des enregistrements est limitée ou si vous n’avez besoin que d’une partie initiale de l’enregistrement, il peut être plus efficace d’appeler ILog ::ReadRecordPrefix.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête txlogpub.h

Voir aussi

Ilog