msidatabaseApplyTransformA 函数 (msiquery.h)

MsiDatabaseApplyTransform 函数将转换应用于数据库。

语法

UINT MsiDatabaseApplyTransformA(
  [in] MSIHANDLE hDatabase,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions
);

参数

[in] hDatabase

MsiOpenDatabase 获取到转换的数据库的句柄。

[in] szTransformFile

指定要应用的转换文件的名称。

[in] iErrorConditions

应禁止显示的错误条件。 此参数是可以包含以下位的位字段。

添加状态 含义
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x0001
添加已存在的行。
MSITRANSFORM_ERROR_DELMISSINGROW
0x0002
删除不存在的行。
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x0004
添加已存在的表。
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x0008
删除不存在的表。
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x0010
更新不存在的行。
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x0020
转换和数据库代码页不匹配,两者都没有中性代码页。
MSITRANSFORM_ERROR_VIEWTRANSFORM
0x0100
创建临时 _TransformView表

返回值

MsiDatabaseApplyTransform 函数返回以下值之一:

注解

MsiDatabaseApplyTransform 函数将转换表延迟到必要为止。 将立即处理要添加或删除的任何表。 但是,在加载表或提交数据库之前,对现有表的更改会延迟。

如果在加载表并将其保存到存储时调用 MsiDatabaseApplyTransform ,则会发生错误。

由于转换、源和修补程序的列表分隔符是分号,因此不应将此字符用于文件名或路径。

无法从自定义操作调用此函数。 从自定义操作调用此函数会导致函数失败。

如果函数失败,可以使用 MsiGetLastErrorRecord 获取扩展的错误信息。

注意

msiquery.h 标头将 MsiDatabaseApplyTransform 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 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
目标平台 Windows
标头 msiquery.h
Library Msi.lib
DLL Msi.dll

另请参阅

数据库管理函数

数据库转换