Share via


ILog::AppendRecord-Methode (txlogpub.h)

Schreiben Sie einen neuen Datensatz an das Ende des Protokolls.

Syntax

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

Parameter

[in] rgBlob

Ein Zeiger auf ein Array von BLOB-Daten, die geschrieben werden sollen.

[in] cBlob

Die Größe des rgBlob-Arrays in -Elementen.

[in] fForceNow

Gibt an, ob die Daten auf dem Datenträger erzwungen werden sollen. Bei TRUE muss der Inhalt des Protokolls bis zu diesem Datensatz auf den Datenträger erzwungen werden, bevor der Aufruf zurückgegeben wird. Bei FALSE kann dieser Datensatz im Arbeitsspeicher gepuffert werden, um geschrieben zu werden, nachdem der Aufruf erfolgreich zurückgegeben wurde.

[in, out] plsn

Ein Zeiger auf die LSN des neu angefügten Datensatzes. Wenn die LSN des neu angefügten Datensatzes nicht benötigt wird, kann dieser Parameter NULL sein.

Rückgabewert

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Jeder von ILog geschriebene oder gelesene Protokolldatensatz ist ein undurchsichtiges BLOB mit Daten. Als Vereinfachung für Aufrufer ermöglicht AppendRecord die Verkettung mehrerer BLOBs in einem einzelnen Datensatz. Da viele Implementierungen von ILog Datensätze in einen Puffer im Arbeitsspeicher kopieren, kann es für den Aufrufer ineffizient sein, Arbeitsspeicher für die Verkettung der Teile eines Datensatzes zuzuweisen. Sobald jedoch ein Datensatz an das Protokoll angefügt ist, stellt ILog keine Methode zum Extrahieren einzelner BLOBs aus dem Datensatz bereit. Es liegt in der Verantwortung des Aufrufers, die Daten in Datensätzen zu analysieren, die aus dem Protokoll gelesen werden. Siehe ILog::ReadRecord.

Hinweise für Anrufer

Ein Fehlerrückgabewert gibt an, dass alle Datensätze, die seit dem letzten erfolgreichen Erzwungenen an das Protokoll angefügt wurden, nicht garantiert auf dem Datenträger sind. Die ILog-Schnittstelle stellt keine Methode bereit, um zu bestimmen, welche Datensätze erfolgreich auf den Datenträger geschrieben wurden. Wenn Sie wissen müssen, welche Datensätze erfolgreich auf den Datenträger geschrieben wurden, müssen Sie das Protokoll für jeden Datensatz erzwingen.

Hinweise für Implementierer

Wenn fForceNowTRUE ist, empfiehlt es sich, Dateipuffer zu leeren (z. B. mithilfe der FlushFileBuffers-Funktion ), bevor Sie von dieser Methode zurückkehren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile txlogpub.h

Weitere Informationen

FlushFileBuffers

Ilog