共用方式為


iLog::AppendRecord 方法 (txlogpub.h)

將新記錄寫入記錄的結尾。

語法

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

參數

[in] rgBlob

要寫入之數據 BLOB 陣列的指標。

[in] cBlob

元素中 rgBlob 陣列的大小。

[in] fForceNow

指出是否要強制數據到磁碟。 如果為 TRUE,則呼叫傳回之前,必須強制將記錄的內容強制為磁碟。 如果 為 FALSE,在呼叫成功傳回之後,此記錄可能會緩衝處理在記憶體中寫入。

[in, out] plsn

新附加記錄之 LSN 的指標。 如果不需要新附加記錄的 LSN,此參數可以是 NULL

傳回值

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

ILog 寫入或讀取的每個記錄檔記錄都是不透明的數據 BLOB。 為了方便呼叫端, AppendRecord 允許將多個 BLOB 串連成單一記錄;因為 許多 ILog 實作會將記錄複製到記憶體中的緩衝區,所以呼叫端可能會沒有效率地配置記憶體來串連記錄的部分。 不過,一旦記錄附加至記錄, ILog 就不會提供從記錄中擷取個別 BLOB 的方法。 呼叫端必須負責剖析從記錄讀取的記錄中的數據。 請參閱 ILog::ReadRecord

來電者附註

失敗傳回值表示自上次成功強制強制後附加至記錄的任何記錄不保證在磁碟上。 ILog 介面不提供方法來判斷哪些記錄已成功寫入磁碟。 如果您需要知道哪些記錄已成功寫入磁碟,您必須強制每個記錄的記錄。

實作者的注意事項

如果 fForceNowTRUE,建議您先 (排清檔案緩衝區,例如使用 FlushFileBuffers 函式) ,再從此方法傳回。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 txlogpub.h

另請參閱

FlushFileBuffers

ILog