Installer.OpenDatabase 方法

Installer物件的OpenDatabase方法會開啟現有的資料庫,或建立新的資料庫,並傳回Database物件。 如果無法成功建立和開啟 Database 物件,就會產生錯誤。

語法

Installer.OpenDatabase(
  name,
  openMode
)

參數

name

包含資料庫路徑名稱的必要字串。 如果提供空字串,則會建立不會保存的暫存資料庫。

openMode

下列清單中的參數,或字串,其中包含要寫入認可時要寫入之新輸出資料庫檔案的路徑名稱。

參數 意義
msiOpenDatabaseModeReadOnly
0
開啟資料庫唯讀,無持續性變更。
msiOpenDatabaseModeTransact
1
以交易模式開啟資料庫讀取/寫入。
msiOpenDatabaseModeDirect
2
開啟沒有交易的資料庫直接讀取/寫入。
msiOpenDatabaseModeCreate
3
建立新的資料庫、交易模式讀取/寫入。
msiOpenDatabaseModeCreateDirect
4
建立新的資料庫,直接模式讀取/寫入。
msiOpenDatabaseModeListScript
5
開啟資料庫以檢視公告腳本檔案,例如 CreateAdvertiseScript 方法所產生的檔案。
msiOpenDatabaseModePatchFile
32
新增此旗標以指出修補程式檔案。

 

傳回值

Database物件,表示已開啟的現有或新安裝程式資料庫。

備註

當資料庫開啟為另一個資料庫的輸出時,輸出資料庫的摘要資訊資料流程實際上是原始資料庫的唯讀鏡像,因此無法變更。 此外,它不會與資料庫一起保存。 若要建立或修改輸出資料庫的摘要資訊,則必須關閉並重新開啟。

若要對資料庫進行變更,請先在 msiOpenDatabaseModeTransact) 交易 (中開啟資料庫,請建立 (msiOpenDatabaseModeCreate 或 msiOpenDatabaseModeCreateDirect) ,或直接 (msiOpenDatabaseModeDirect) 模式。 進行變更之後,請一律先呼叫 Commit 方法,再關閉資料庫控制碼。 Commit方法會排清所有緩衝區。

請一律在已在直接模式中開啟的資料庫上呼叫 Commit 方法, (msiOpenDatabaseModeDirect 或 msiOpenDatabaseModeCreateDirect) ,再關閉資料庫。 無法這樣做可能會損毀資料庫。

因為 OpenDatabase 方法會起始資料庫存取權,所以無法搭配執行中的安裝使用。

如果方法失敗,您可以使用 LastErrorRecord 方法來取得擴充錯誤資訊。

規格需求

需求
版本
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
DLL
Msi.dll
IID
IID_IInstaller定義為 000C1090-0000-0000-C000-000000000046