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 メソッドによって、すべてのバッファーがフラッシュされます。

ダイレクト モード (msiOpenDatabaseModeDirect または msiOpenDatabaseModeCreateDirect) で開かれているデータベースでは、データベースを閉じる前に必ず Commit メソッドを呼び出します。 これを行わないと、データベースが破損する可能性があります。

OpenDatabase メソッドはデータベース アクセスを開始するため、実行中のインストールでは使用できません。

メソッドが失敗した場合は、LastErrorRecord メソッドを使用して拡張エラー情報を取得できます。

必要条件

要件
バージョン
Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP の Windows インストーラー
[DLL]
Msi.dll
IID
IID_IInstaller が 000C1090-0000-0000-C000-000000000046 として定義されている