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 |