Metodo Installer.OpenDatabase

Il metodo OpenDatabase dell'oggetto Installer apre un database esistente o ne crea uno nuovo, restituendo un oggetto Database . Viene generato un errore se l'oggetto Database non può essere creato e aperto correttamente.

Sintassi

Installer.OpenDatabase(
  name,
  openMode
)

Parametri

nome

Stringa obbligatoria contenente il nome del percorso del database. Se viene specificata una stringa vuota, viene creato un database temporaneo che non viene salvato in modo permanente.

openMode

Parametro dell'elenco seguente o stringa contenente il nome del percorso del nuovo file di database di output in cui deve essere scritto al commit.

Parametro Significato
msiOpenDatabaseModeReadOnly
0
Apre un database di sola lettura, senza modifiche persistenti.
msiOpenDatabaseModeTransact
1
Apre un database in lettura/scrittura in modalità transazione.
msiOpenDatabaseModeDirect
2
Apre un database in lettura/scrittura diretta senza transazione.
msiOpenDatabaseModeCreate
3
Crea un nuovo database, modalità transact di lettura/scrittura.
msiOpenDatabaseModeCreateDirect
4
Crea un nuovo database, modalità diretta lettura/scrittura.
msiOpenDatabaseModeListScript
5
Apre un database per visualizzare i file di script annunciati, ad esempio i file generati dal metodo CreateAdvertiseScript .
msiOpenDatabaseModePatchFile
32
Aggiunge questo flag per indicare un file di patch.

 

Valore restituito

Oggetto Database che rappresenta il database del programma di installazione esistente o nuovo aperto.

Commenti

Quando un database viene aperto come output di un altro database, il flusso di informazioni di riepilogo del database di output è in realtà un mirror di sola lettura del database originale e pertanto non può essere modificato. Inoltre, non è persistente con il database. Per creare o modificare le informazioni di riepilogo per il database di output, è necessario chiuderla e riaprirla.

Per apportare e salvare le modifiche apportate a un database, aprire prima il database nella transazione (msiOpenDatabaseModeTransact), creare (msiOpenDatabaseModeCreate o msiOpenDatabaseModeCreateDirect) o direct (msiOpenDatabaseModeDirect). Dopo aver apportato le modifiche, chiamare sempre il metodo Commit prima di chiudere l'handle del database. Il metodo Commit scarica tutti i buffer.

Chiamare sempre il metodo Commit in un database aperto in modalità diretta (msiOpenDatabaseModeDirect o msiOpenDatabaseModeCreateDirect) prima di chiudere il database. In caso contrario, il database potrebbe danneggiare il database.

Poiché il metodo OpenDatabase avvia l'accesso al database, non può essere usato con un'installazione in esecuzione.

Se il metodo ha esito negativo, è possibile ottenere informazioni estese sull'errore usando il metodo LastErrorRecord .

Requisiti

Requisito Valore
Versione
Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP
DLL
Msi.dll
IID
IID_IInstaller è definito come 000C1090-0000-0000-C000-000000000046