如何:使用參數化篩選管理合併式發行集的資料分割 (RMO 程式設計)

若要使用參數化篩選以更好的方式管理發行集,可以使用「複寫管理物件」(RMO),以程式設計的方式建立新的「訂閱者」資料分割、列舉現有的「訂閱者」資料分割,以及刪除「訂閱者」資料分割。 如需有關如何建立「訂閱者」資料分割的詳細資訊,請參閱<如何:使用參數化篩選建立合併式發行集的快照集 (RMO 程式設計)>。 您可取得下列有關現有資料分割的資訊:

  • 資料分割所根據的值和篩選函數。

  • 為「訂閱者」產生參數化快照集的作業名稱。

  • 上次執行參數化快照集作業的時間。

[!附註]

當發行集具有參數化篩選,可產生具有非重疊資料分割的訂閱時,則如果遺失了特定訂閱而需要重新建立時,就必須執行下列作業: 移除先前訂閱的資料分割、重新建立訂閱,然後重新建立資料分割。 如需詳細資訊,請參閱<參數化資料列篩選器>。 複寫會在發行集建立指令碼產生時,針對現有的「訂閱者」資料分割產生建立指令碼。 如需詳細資訊,請參閱<編寫複寫指令碼>。

若要在現有的資料分割上檢視資訊

  1. 使用 ServerConnection 類別建立與「發行者」的連接。

  2. 建立 MergePublication 類別的執行個體。 設定發行集的 NameDatabaseName 屬性,並將 ConnectionContext 屬性設定為在步驟 1 中建立的 ServerConnection

  3. 呼叫 LoadProperties 方法以取得物件的屬性。 如果此方法傳回 false,則表示步驟 2 中的發行集屬性定義不正確,或者該發行集不存在。

  4. 呼叫 EnumMergePartitions 方法,並將結果傳遞到 MergePartition 物件的陣列。

  5. 針對陣列中的每個 MergePartition 物件,取得任何所要的屬性。

若要刪除現有的資料分割

  1. 使用 ServerConnection 類別建立與「發行者」的連接。

  2. 建立 MergePublication 類別的執行個體。 設定發行集的 NameDatabaseName 屬性,並將 ConnectionContext 屬性設定為在步驟 1 中建立的 ServerConnection

  3. 呼叫 LoadProperties 方法以取得物件的屬性。 如果此方法傳回 false,則表示步驟 2 中的發行集屬性定義不正確,或者該發行集不存在。

  4. 呼叫 EnumMergePartitions 方法,並將結果傳遞到 MergePartition 物件的陣列。

  5. 對於陣列中的每個 MergePartition 物件,決定是否應該刪除資料分割: 這項決定通常是根據 DynamicFilterLogin 屬性或 DynamicFilterHostName 屬性的值而定。

  6. 在步驟 2 的 MergePublication 物件上呼叫 RemoveMergePartition 方法。 傳遞步驟 5 的 MergePartition 物件。

  7. 針對每個刪除的資料分割重複步驟 6。