MsiDatabaseOpenViewA 函数 (msiquery.h)

MsiDatabaseOpenView 函数准备数据库查询并创建视图对象。 此函数返回应使用 MsiCloseHandle关闭的句柄。

语法

UINT MsiDatabaseOpenViewA(
  [in]  MSIHANDLE hDatabase,
  [in]  LPCSTR    szQuery,
  [out] MSIHANDLE *phView
);

参数

[in] hDatabase

要打开视图对象的数据库的句柄。 可以获取句柄,如 获取数据库句柄中所述。

[in] szQuery

指定用于查询数据库的 SQL 查询字符串。 有关正确的语法,请参阅 SQL 语法

[out] phView

指向返回视图的句柄的指针。

返回值

MsiDatabaseOpenView 函数返回以下值之一:

如果成功,ERROR_SUCCESS并设置 phView [out] 参数指向的视图句柄。

如果失败,ERROR_INVALID_HANDLE、ERROR_INVALID_HANDLE_STATE、ERROR_BAD_QUERY_SYNTAX或ERROR_GEN_FAILURE,并设置错误记录,可通过 MsiGetLastErrorRecord 访问。

言论

MsiDatabaseOpenView 函数打开数据库的视图对象。 在执行任何执行或提取之前,必须打开数据库的视图对象。

如果发生错误,可以调用 MsiGetLastErrorRecord 了解详细信息。

请注意,建议使用 PMSIHANDLE 类型的变量,因为安装程序关闭 PMSIHANDLE 对象,因为它们超出范围,而必须通过调用 MsiCloseHandle来关闭 MSIHANDLE 对象。 有关详细信息,请参阅 Windows Installer 最佳做法中的 使用 PMSIHANDLE 而不是 HANDLE 部分。

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

注意

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

另请参阅

常规数据库访问函数