MsiOpenDatabaseW-Funktion (msiquery.h)
Die MsiOpenDatabase-Funktion öffnet eine Datenbankdatei für den Datenzugriff. Diese Funktion gibt ein Handle zurück, das mit MsiCloseHandlegeschlossen werden soll.
Syntax
UINT MsiOpenDatabaseW(
[in] LPCWSTR szDatabasePath,
[in] LPCWSTR szPersist,
[out] MSIHANDLE *phDatabase
);
Parameter
[in] szDatabasePath
Gibt den vollständigen pfad oder relativen Pfad zur Datenbankdatei an.
[in] szPersist
Empfängt den vollständigen Pfad zur Datei oder zum Persistenzmodus. Sie können den szPersist Parameter verwenden, um die persistente Ausgabe an eine neue Datei zu leiten oder einen der folgenden vordefinierten Persistenzmodi anzugeben.
[out] phDatabase
Zeigen Sie auf die Position des zurückgegebenen Datenbankhandles.
Rückgabewert
Die MsiOpenDatabase-Funktion gibt die folgenden Werte zurück:
Bemerkungen
Um Änderungen an einer Datenbank vorzunehmen und zu speichern, öffnen Sie zuerst die Datenbank in Transaktion (MSIDBOPEN_TRANSACT), erstellen (MSIDBOPEN_CREATE oder MSIDBOPEN_CREATEDIRECT) oder den direkten Modus (MSIDBOPEN_DIRECT). Rufen Sie nach dem Vornehmen der Änderungen immer MsiDatabaseCommit- auf, bevor Sie das Datenbankhandle schließen. MsiDatabaseCommit löscht alle Puffer.
Rufen Sie immer MsiDatabaseCommit für eine Datenbank auf, die im direkten Modus (MSIDBOPEN_DIRECT oder MSIDBOPEN_CREATEDIRECT) geöffnet wurde, bevor Sie das Handle der Datenbank schließen. Andernfalls kann die Datenbank beschädigt werden.
Da MsiOpenDatabase den Datenbankzugriff initiiert, kann sie nicht mit einer ausgeführten Installation verwendet werden.
Beachten Sie, dass es empfohlen wird, Variablen vom Typ PMSIHANDLE zu verwenden, da das Installationsprogramm PMSIHANDLE-Objekte schließt, während sie außerhalb des Gültigkeitsbereichs liegen, während Sie MSIHANDLE-Objekte schließen müssen, indem Sie MsiCloseHandleaufrufen. Weitere Informationen finden Sie unter Verwenden von PMSIHANDLE anstelle des Abschnitts HANDLE im bewährte Methoden für Windows Installer.
Anmerkung
Der msiquery.h-Header definiert MsiOpenDatabase als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP |
Zielplattform- | Fenster |
Header- | msiquery.h |
Library | Msi.lib |
DLL- | Msi.dll |