MsiCreateTransformSummaryInfoA 函数 (msiquery.h)

MsiCreateTransformSummaryInfo 函数创建现有转换的摘要信息,以包括验证和错误条件。 执行此函数将设置错误记录,可以使用 MsiGetLastErrorRecord访问该记录。

语法

UINT MsiCreateTransformSummaryInfoA(
  [in] MSIHANDLE hDatabase,
  [in] MSIHANDLE hDatabaseReference,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions,
  [in] int       iValidation
);

参数

[in] hDatabase

包含新数据库摘要信息的数据库的句柄。

[in] hDatabaseReference

包含原始摘要信息的数据库的句柄。

[in] szTransformFile

将摘要信息添加到的转换的名称。

[in] iErrorConditions

应用转换时应取消的错误条件。 使用以下一个或多个值。

错误条件 意义
0x00000000
没有以下条件。
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x00000001
添加存在的行。
MSITRANSFORM_ERROR_DELMISSINGROW
0x00000002
删除不存在的行。
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x00000004
添加存在表。
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x00000008
删除不存在的表。
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x00000010
更新不存在的行。
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x00000020
转换和数据库代码页不匹配,其代码页是中性的。

[in] iValidation

指定要验证的属性,以验证转换是否可应用于数据库。 此参数可以是以下一个或多个值。

验证标志 意义
0x00000000
不要验证属性。
MSITRANSFORM_VALIDATE_LANGUAGE
0x00000001
默认语言必须与基础数据库匹配。
MSITRANSFORM_VALIDATE_PRODUCT
0x00000002
产品必须与基础数据库匹配。
 

验证产品版本标志。

验证标志 意义
MSITRANSFORM_VALIDATE_MAJORVERSION
0x00000008
仅检查主版本。
MSITRANSFORM_VALIDATE_MINORVERSION
0x00000010
仅检查主要版本和次要版本。
MSITRANSFORM_VALIDATE_UPDATEVERSION
0x00000020
检查主要版本、次要版本和更新版本。
 

产品版本关系标志。 下表中,已安装的版本是正在转换的包的版本,而基本版本是用于创建转换的包的版本。

验证标志 意义
MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION
0x00000040
已安装的版本 < 基本版本。
MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION
0x00000080
已安装的版本 <= 基本版本。
MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION
0x00000100
已安装的版本 = 基本版本。
MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION
0x00000200
已安装的版本 >= 基本版本。
MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION
0x00000400
已安装的版本 > 基本版本。
 

升级代码验证标志。

验证标志 意义
MSITRANSFORM_VALIDATE_UPGRADECODE
0x00000800
UpgradeCode 必须与基本数据库匹配。

返回值

此函数返回 UINT。

言论

ProductCode 属性和 ProductVersion 属性必须在基数据库和引用数据库的 属性表 中定义。 如果使用MSITRANSFORM_VALIDATE_UPGRADECODE,还必须在两个数据库中定义 UpgradeCode 属性。 如果未满足这些条件,MsiCreateTransformSummaryInfo 返回ERROR_INSTALL_PACKAGE_INVALID。

  • 不要将分号用于文件名或路径,因为它用作转换、源和修补程序的列表分隔符。
  • 无法从自定义操作调用此函数。 从自定义操作调用此函数会导致函数失败。

注意

msiquery.h 标头将 MsiCreateTransformSummaryInfo 定义为一个别名,该别名根据 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

另请参阅

数据库转换

摘要信息流属性集