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
程式庫 Msi.lib
Dll Msi.dll

另請參閱

一般數據庫存取函式