Compartir a través de


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

Lea un registro del registro.

Sintaxis

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

Parámetros

[in] lsnToRead

LSN del registro que se va a leer.

[in, out] plsnPrev

Puntero al LSN del registro anterior (el registro inmediatamente anterior al registro que se va a leer). Este parámetro puede ser NULL si no se necesita el LSN del registro anterior. Este parámetro es 0 si no hay ningún registro anterior en el registro o si se produce un error.

[in, out] plsnNext

Puntero al LSN del siguiente registro (el registro inmediatamente después del registro que se va a leer). Este parámetro puede ser NULL si no se necesita el LSN del siguiente registro. Este parámetro es MAXLSN (0x7FFFFFFFFFFFFFFF) si no hay ningún registro siguiente en el registro. Este parámetro es 0 si se produce un error.

[out] ppbData

Puntero a una variable que contendrá un puntero a los datos de registro al devolver. ReadRecord asigna la memoria de estos datos y la libera el autor de la llamada (consulte CoTaskMemFree). Este parámetro es NULL si se produce un error.

[out] pcbData

Puntero a una variable que recibe el tamaño de los datos de registro, en bytes, al devolver.

Valor devuelto

Este método puede devolver los siguientes valores, así como otros valores HRESULT .

Código devuelto Descripción
S_OK
El registro se leyó correctamente desde el registro.
XACT_E_INVALIDLSN
lsnToRead está fuera de los límites actuales del registro. Consulte ILog::GetLogLimits.
E_INVALIDARG
lsnToRead se encuentra dentro de los límites actuales del registro, pero no es el LSN de un registro en el registro.
E_OUTOFMEMORY
No se devolvió el registro debido a una falta de memoria.

Comentarios

Aunque los registros anexados al registro mediante ILog::AppendRecord se pueden concatenar desde varios BLOB, ReadRecord devuelve el registro como un único blob opaco de datos. ILog no proporciona ningún método para extraer blobs individuales del registro. Es responsabilidad del autor de la llamada analizar los datos de los registros devueltos por ReadRecord.

Notas a los autores de llamadas

Si el registro contiene registros muy grandes, este método puede producir un error porque ReadRecord no pudo asignar memoria suficiente para los datos de registro. Si el tamaño de los registros está limitado o si solo necesita una parte inicial del registro, puede ser más eficaz llamar a ILog::ReadRecordPrefix.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado txlogpub.h

Consulte también

Ilog