共用方式為


IReplicaMetadata::GetChangeBatch

取得變更批次,其中包含目的地提供者之指定知識內未包含之項目的項目中繼資料。

HRESULT GetChangeBatch(
  DWORD dwBatchSize,
  ISyncKnowledge *pSyncKnowledge,
ISyncChangeBatch ** ppSyncChangeBatch);

參數

  • dwBatchSize
    [in] 要建立之批次的大小。
  • pSyncKnowledge
    [in] 目的地提供者的知識。
  • ppSyncChangeBatch
    [out] 傳回變更批次,其中包含目的地提供者之指定知識內未包含之項目的項目中繼資料。

傳回值

  • S_OK

  • E_POINTER

  • 如果 dwBatchSize 是 0,則為 E_INVALIDARG。

備註

這個方法可幫助同步處理提供者實作它的 IKnowledgeSyncProvider::GetChangeBatch 方法。

當提供者呼叫這個方法之前,他們必須先確定中繼資料存放區內的版本可反映所有的本機變更,包括刪除在內。這是透過明確的中繼資料維護通過來完成,以便列舉項目及更新項目的中繼資料。

這個類別的實作 (可透過 ISqlSyncMetadataStore 取得) 會依照全域識別碼順序將變更加入到變更批次。

當沒有其他變更要傳送時,這個類別的實作 (透過 ISqlSyncMetadataStore 取得) 便會在傳回的變更批次上呼叫 SetLastBatch

實作者注意事項

為了幫助使用全域識別碼順序且能夠使用範圍的提供者,應該要列舉變更,並依照全域識別碼順序將變更加入到變更批次。傳回之變更批次內的第一個變更會開始新的範圍。

如果這個批次之後沒有其他變更要傳送,必須在傳回的變更批次上呼叫 SetLastBatch,否則 Sync Framework 將會再次呼叫 IKnowledgeSyncProvider::GetChangeBatch 來擷取其他變更批次。

請參閱

參考

IReplicaMetadata 介面