Condividi tramite


Metodo ILog::AppendRecord (txlogpub.h)

Scrivere un nuovo record alla fine del log.

Sintassi

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

Parametri

[in] rgBlob

Puntatore a una matrice di BLOB di dati da scrivere.

[in] cBlob

Dimensioni della matrice rgBlob , negli elementi.

[in] fForceNow

Indica se forzare i dati su disco. Se TRUE, il contenuto del log fino a questo record deve essere forzato a disco prima che la chiamata venga restituita. Se FALSE, questo record può essere memorizzato nel buffer in memoria da scrivere dopo che la chiamata restituisce correttamente.

[in, out] plsn

Puntatore all'LSN del record appena aggiunto. Se l'LSN del record appena aggiunto non è necessario, questo parametro può essere NULL.

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Ogni record di log scritto o letto da ILog è un BLOB opaco di dati. Come praticità per i chiamanti, AppendRecord consente la concatenazione di più BLOB in un singolo record; poiché molte implementazioni di ILog copiano i record in un buffer in memoria, potrebbe essere inefficiente per il chiamante allocare memoria per concatenare le parti di un record. Tuttavia, una volta aggiunto un record al log, ILog non fornisce alcun metodo per estrarre singoli BLOB dal record. È responsabilità del chiamante analizzare i dati nei record letti dal log. Vedere ILog::ReadRecord.

Note ai chiamanti

Un valore restituito di errore indica che tutti i record aggiunti al log dall'ultima volta che è stato forzato non sono garantiti sul disco. L'interfaccia ILog non fornisce un metodo per determinare quali record sono stati scritti correttamente su disco. Se è necessario sapere quali record sono stati scritti correttamente su disco, è necessario forzare il log per ogni record.

Note per gli implementatori

Se fForceNow è TRUE, è consigliabile scaricare buffer di file (ad esempio usando la funzione FlushFileBuffers ) prima di restituire da questo metodo.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione txlogpub.h

Vedi anche

FlushFileBuffers

Ilog