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
目标平台 Windows
标头 msiquery.h
Library Msi.lib
DLL Msi.dll

另请参阅

常规数据库访问函数