Database.Merge 方法

Database 对象的 Merge 方法将引用数据库与基数据库合并。

语法

Database.Merge(
  reference,
  errorTable
)

参数

reference

要合并到数据库中的所需 Database 对象。

errorTable

表的可选名称,用于包含包含合并冲突的表的名称、表中冲突的行数,以及对具有合并冲突的表的引用。

返回值

此方法不返回值。

备注

MsiDatabaseMerge 函数以及 Database 对象的 Merge 方法无法用来合并安装包中包含的模块。 不能使用它们将合并模块合并到 Windows Installer 包中。 若要在安装包中包含合并模块,安装包的作者应遵循应用合并模块主题中所述的准则。

Merge 方法不会将嵌入的文件柜文件嵌入转换从参考数据库复制到目标数据库中。 Binary 表Icon 表中列出的嵌入数据流将从引用数据库复制到目标数据库。 嵌入在引用数据库中的存储不会复制到目标数据库。

如果未提供表,则常规错误消息会提供包含合并冲突的表数量。 可以传入任何表,但所有其他列都必须可为 null,因为如果某个列不能为 null,更新 Error 表的操作将失败。 也可以传入新创建的表,因为如果发现合并冲突,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