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] |
|
| IID |
IID_IInstaller が 000C1090-0000-0000-C000-000000000046 として定義されている |