MsiOpenDatabaseA, fonction (msiquery.h)
La fonction MsiOpenDatabase ouvre un fichier de base de données pour l’accès aux données. Cette fonction retourne un handle qui doit être fermé à l’aide de MsiCloseHandle.
Syntaxe
UINT MsiOpenDatabaseA(
[in] LPCSTR szDatabasePath,
[in] LPCSTR szPersist,
[out] MSIHANDLE *phDatabase
);
Paramètres
[in] szDatabasePath
Spécifie le chemin d’accès complet ou relatif au fichier de base de données.
[in] szPersist
Reçoit le chemin d’accès complet au fichier ou le mode de persistance. Vous pouvez utiliser le paramètre szPersist pour diriger la sortie persistante vers un nouveau fichier ou pour spécifier l’un des modes de persistance prédéfinis suivants.
[out] phDatabase
Pointeur vers l’emplacement du handle de base de données retourné.
Valeur retournée
La fonction MsiOpenDatabase retourne les valeurs suivantes :
Remarques
Pour apporter et enregistrer des modifications à une base de données, ouvrez d’abord la base de données en mode transactionnel (MSIDBOPEN_TRANSACT), créez (MSIDBOPEN_CREATE ou MSIDBOPEN_CREATEDIRECT) ou direct (MSIDBOPEN_DIRECT). Après avoir apporté les modifications, appelez toujours MsiDatabaseCommit avant de fermer le handle de base de données. MsiDatabaseCommit vide toutes les mémoires tampons.
Appelez toujours MsiDatabaseCommit sur une base de données qui a été ouverte en mode direct (MSIDBOPEN_DIRECT ou MSIDBOPEN_CREATEDIRECT) avant de fermer le handle de la base de données. Si vous ne le faites pas, vous risquez d’endommager la base de données.
MsiOpenDatabase initie l’accès à la base de données, il ne peut pas être utilisé avec une installation en cours d’exécution.
Notez qu’il est recommandé d’utiliser des variables de type PMSIHANDLE, car le programme d’installation ferme les objets PMSIHANDLE en dehors de leur portée, alors que vous devez fermer les objets MSIHANDLE en appelant MsiCloseHandle. Pour plus d’informations, consultez la section Utiliser PMSIHANDLE au lieu de HANDLE dans les Bonnes pratiques de Windows Installer.
Notes
L’en-tête msiquery.h définit MsiOpenDatabase comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP |
Plateforme cible | Windows |
En-tête | msiquery.h |
Bibliothèque | Msi.lib |
DLL | Msi.dll |