MsiDatabaseApplyTransformW 函数 (msiquery.h)

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

语法

UINT MsiDatabaseApplyTransformW(
  [in] MSIHANDLE hDatabase,
  [in] LPCWSTR   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
目标平台 窗户
标头 msiquery.h
Msi.lib
DLL Msi.dll

另请参阅

数据库管理功能

数据库转换