Método ILog::ReadRecord (txlogpub.h)
Ler um registro do log.
Sintaxe
HRESULT ReadRecord(
[in] LSN lsnToRead,
[in, out] LSN *plsnPrev,
[in, out] LSN *plsnNext,
[out] BYTE **ppbData,
[out] ULONG *pcbData
);
Parâmetros
[in] lsnToRead
O LSN do registro a ser lido.
[in, out] plsnPrev
Um ponteiro para o LSN do registro anterior (o registro imediatamente anterior ao registro a ser lido). Esse parâmetro poderá ser NULL se o LSN do registro anterior não for necessário. Esse parâmetro será 0 se não houver nenhum registro anterior no log ou se ocorrer um erro.
[in, out] plsnNext
Um ponteiro para o LSN do próximo registro (o registro imediatamente após o registro a ser lido). Esse parâmetro poderá ser NULL se o LSN do próximo registro não for necessário. Esse parâmetro será MAXLSN (0x7FFFFFFFFFFFFFFF) se não houver nenhum próximo registro no log. Esse parâmetro será 0 se ocorrer um erro.
[out] ppbData
Um ponteiro para uma variável que conterá um ponteiro para os dados de registro no retorno. A memória para esses dados é alocada por ReadRecord e liberada pelo chamador (consulte CoTaskMemFree). Esse parâmetro será NULL se ocorrer um erro.
[out] pcbData
Um ponteiro para uma variável que recebe o tamanho dos dados de registro, em bytes, no retorno.
Retornar valor
Esse método pode retornar os valores a seguir, bem como outros valores HRESULT .
Código de retorno | Descrição |
---|---|
|
O registro foi lido com êxito do log. |
|
lsnToRead está fora dos limites atuais do log. Consulte ILog::GetLogLimits. |
|
LsnToRead está dentro dos limites atuais do log, mas não é o LSN de um registro no log. |
|
O registro não foi retornado devido à falta de memória. |
Comentários
Embora os registros acrescentados ao log usando ILog::AppendRecord possam ser concatenados de vários BLOBs, ReadRecord retorna o registro como um único blob opaco de dados. O ILog não fornece nenhum método para extrair BLOBs individuais do registro. É responsabilidade do chamador analisar os dados em registros retornados por ReadRecord.
Anotações aos Chamadores
Se o log contiver registros muito grandes, esse método poderá falhar porque ReadRecord não pôde alocar memória suficiente para os dados de registro. Se o tamanho dos registros for limitado ou se você precisar apenas de uma parte inicial do registro, poderá ser mais eficiente chamar ILog::ReadRecordPrefix.Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | txlogpub.h |