Compartilhar via


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

Grave um novo registro no final do log.

Sintaxe

HRESULT AppendRecord(
  [in]      BLOB  *rgBlob,
  [in]      ULONG cBlob,
  [in]      BOOL  fForceNow,
  [in, out] LSN   *plsn
);

Parâmetros

[in] rgBlob

Um ponteiro para uma matriz de BLOBs de dados a serem gravados.

[in] cBlob

O tamanho da matriz rgBlob , em elementos.

[in] fForceNow

Indica se os dados devem ser forçados ao disco. Se TRUE, o conteúdo do log até esse registro deverá ser forçado ao disco antes que a chamada retorne. Se FALSE, esse registro poderá ser armazenado em buffer na memória a ser gravado depois que a chamada retornar com êxito.

[in, out] plsn

Um ponteiro para o LSN do registro recém-acrescentado. Se o LSN do registro recém-acrescentado não for necessário, esse parâmetro poderá ser NULL.

Retornar valor

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

Cada registro de log gravado ou lido pelo ILog é um BLOB opaco de dados. Como uma conveniência para os chamadores, AppendRecord permite que vários BLOBs sejam concatenados em um único registro; como muitas implementações do ILog copiarão registros para um buffer na memória, pode ser ineficiente para o chamador alocar memória para concatenar as partes de um registro. No entanto, depois que um registro é acrescentado ao log, o ILog não fornece nenhum método para extrair BLOBs individuais do registro. É responsabilidade do chamador analisar os dados nos registros lidos do log. Consulte ILog::ReadRecord.

Anotações para chamadores

Um valor retornado de falha indica que todos os registros acrescentados ao log desde a última vez em que ele foi forçado com êxito não têm garantia de estar em disco. A interface ILog não fornece um método para determinar quais registros foram gravados com êxito no disco. Se você precisar saber quais registros foram gravados com êxito no disco, deverá forçar o log para cada registro.

Anotações aos implementadores

Se fForceNow for TRUE, é recomendável liberar buffers de arquivo (por exemplo, usando a função FlushFileBuffers ) antes de retornar desse método.

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

Confira também

FlushFileBuffers

Ilog