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 complet du fichier ou du mode de persistance. Vous pouvez utiliser le paramètre szPersist pour diriger la sortie persistante vers un nouveau fichier ou 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 de retour
La fonction MsiOpenDatabase retourne les valeurs suivantes :
Remarques
Pour apporter et enregistrer des modifications dans une base de données, ouvrez d’abord la base de données en mode transaction (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 ouverte en mode direct (MSIDBOPEN_DIRECT ou MSIDBOPEN_CREATEDIRECT) avant de fermer le handle de la base de données. L’échec de cette opération peut endommager la base de données.
Étant donné que MsiOpenDatabase lance 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 à mesure qu’ils sortent de l’étendue, alors que vous devez fermer des objets MSIHANDLE en appelant MsiCloseHandle. Pour plus d’informations, consultez Utiliser PMSIHANDLE au lieu de la section HANDLE dans les meilleures pratiques Windows Installer.
Note
L’en-tête msiquery.h définit MsiOpenDatabase en tant qu’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.
Exigences
Exigence | Valeur |
---|---|
client minimum 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 |
d’en-tête | msiquery.h |
bibliothèque | Msi.lib |
DLL | Msi.dll |