Функция MsiOpenDatabaseA (msiquery.h)
Функция msiOpenDatabase
Синтаксис
UINT MsiOpenDatabaseA(
[in] LPCSTR szDatabasePath,
[in] LPCSTR szPersist,
[out] MSIHANDLE *phDatabase
);
Параметры
[in] szDatabasePath
Указывает полный путь или относительный путь к файлу базы данных.
[in] szPersist
Получает полный путь к файлу или режиму сохраняемости. Можно использовать параметр szPersist для направления постоянных выходных данных в новый файл или указания одного из следующих предопределенных режимов сохраняемости.
[out] phDatabase
Указатель на расположение возвращаемого дескриптора базы данных.
Возвращаемое значение
Функция MsiOpenDatabase возвращает следующие значения:
Замечания
Чтобы внести и сохранить изменения в базе данных, сначала откройте базу данных в транзакции (MSIDBOPEN_TRANSACT), создайте (MSIDBOPEN_CREATE или MSIDBOPEN_CREATEDIRECT) или прямой (MSIDBOPEN_DIRECT) режим. После внесения изменений всегда вызывайте MsiDatabaseCommit перед закрытием дескриптора базы данных. MsiDatabaseCommit очищает все буферы.
Всегда вызывайте MsiDatabaseCommit в базе данных, которая была открыта в прямом режиме (MSIDBOPEN_DIRECT или MSIDBOPEN_CREATEDIRECT) перед закрытием дескриптора базы данных. Это может привести к повреждению базы данных.
Так как MsiOpenDatabase инициирует доступ к базе данных, ее нельзя использовать с запущенной установкой.
Обратите внимание, что рекомендуется использовать переменные типа PMSIHANDLE, так как установщик закрывает объекты PMSIHANDLE по мере их выхода из области, в то время как необходимо закрыть объекты MSIHANDLE, вызвав MsiCloseHandle. Дополнительные сведения см. в разделе Use PMSIHANDLE вместо HANDLE в разделе Рекомендации по установщику Windows.
Заметка
Заголовок msiquery.h определяет MsiOpenDatabase как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP |
целевая платформа | Виндоус |
заголовка | msiquery.h |
библиотеки |
Msi.lib |
DLL | Msi.dll |