Funzione MsiOpenDatabaseA (msiquery.h)
La funzione MsiOpenDatabase apre un file di database per l'accesso ai dati. Questa funzione restituisce un handle che deve essere chiuso usando MsiCloseHandle.
Sintassi
UINT MsiOpenDatabaseA(
[in] LPCSTR szDatabasePath,
[in] LPCSTR szPersist,
[out] MSIHANDLE *phDatabase
);
Parametri
[in] szDatabasePath
Specifica il percorso completo o il percorso relativo del file di database.
[in] szPersist
Riceve il percorso completo del file o la modalità di persistenza. È possibile usare il parametro szPersist per indirizzare l'output permanente a un nuovo file o per specificare una delle modalità di persistenza predefinite seguenti.
[out] phDatabase
Puntatore alla posizione dell'handle di database restituito.
Valore restituito
La funzione MsiOpenDatabase restituisce i valori seguenti:
Commenti
Per apportare e salvare le modifiche apportate a un database, aprire prima di tutto il database nella modalità transazione (MSIDBOPEN_TRANSACT), creare (MSIDBOPEN_CREATE o MSIDBOPEN_CREATEDIRECT) o direct (MSIDBOPEN_DIRECT). Dopo aver apportato le modifiche, chiamare sempre MsiDatabaseCommit prima di chiudere l'handle del database. MsiDatabaseCommit scarica tutti i buffer.
Chiamare sempre MsiDatabaseCommit in un database aperto in modalità diretta (MSIDBOPEN_DIRECT o MSIDBOPEN_CREATEDIRECT) prima di chiudere l'handle del database. In caso contrario, il database potrebbe danneggiare il database.
Poiché MsiOpenDatabase avvia l'accesso al database, non può essere usato con un'installazione in esecuzione.
Si noti che è consigliabile usare variabili di tipo PMSIHANDLE perché il programma di installazione chiude gli oggetti PMSIHANDLE quando escono dall'ambito, mentre è necessario chiudere gli oggetti MSIHANDLE chiamando MsiCloseHandle. Per altre informazioni, vedere Usare PMSIHANDLE anziché la sezione HANDLE in Procedure consigliate per Windows Installer.
Nota
L'intestazione msiquery.h definisce MsiOpenDatabase come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | 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 |
Piattaforma di destinazione | Windows |
Intestazione | msiquery.h |
Libreria | Msi.lib |
DLL | Msi.dll |