Database.Merge 方法

Database物件的Merge方法會將參考資料庫與基底資料庫合併。

語法

Database.Merge(
  reference,
  errorTable
)

參數

reference

要合併至資料庫的必要 Database 物件。

errorTable

資料表的選擇性名稱,包含包含合併衝突的資料表名稱、資料表內衝突的資料列數目,以及具有合併衝突之資料表的參考。

傳回值

這個方法不會傳回值。

備註

MsiDatabaseMerge函式和Database物件的Merge方法無法用來合併安裝套件中包含的模組。 它們不應該用來將 合併模組 合併至 Windows Installer 套件。 若要在安裝套件中包含合併模組,安裝套件的作者應遵循 套用合併模組 主題中所述的指導方針。

Merge方法不會將內嵌封包檔案或內嵌轉換從參考資料庫複製到目標資料庫。 二進位資料表圖示資料表中列出的內嵌資料流程會從參考資料庫複製到目標資料庫。 內嵌在參考資料庫中的儲存體不會複製到目標資料庫。

如果沒有提供資料表,一般錯誤訊息會提供包含合併衝突的資料表數目。 任何資料表都可以傳入,但所有其他資料行都必須為 Null,因為如果資料行無法為 Null,則更新 錯誤資料表 的作業會失敗。 您也可以傳入新建立的資料表,因為 Merge 方法會在找到合併衝突時自動建立它所使用的資料行。 兩個數據行是用來呈現合併衝突。 第一個資料行是資料表名稱和主鍵資料行。 第二個數據行是具有合併失敗之資料表的資料列數目。

如果兩個資料庫中相同名稱的資料表與主鍵數目、資料行類型、資料行數目或資料行名稱不相符, Merge 方法會失敗並張貼錯誤訊息,指出發生什麼事。

若要保留 Error 資料表,錯誤處理常式必須認可 Error 資料表所屬的資料庫。 不過,使用第三個數據行來取得發生合併衝突之資料表的參考之後,應該完成此認可。

如果方法失敗,您可以使用 LastErrorRecord 方法來取得擴充錯誤資訊。

規格需求

需求
版本
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer
DLL
Msi.dll
IID
IID_IDatabase定義為 000C109D-0000-0000-C000-000000000046