Функция MsiOpenDatabaseA (msiquery.h)
Функция MsiOpenDatabase открывает файл базы данных для доступа к данным. Эта функция возвращает дескриптор, который должен быть закрыт с помощью MsiCloseHandle.
Синтаксис
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. Дополнительные сведения см. в разделе Использование PMSIHANDLE вместо HANDLE статьи Рекомендации по установщику Windows.
Примечание
Заголовок msiquery.h определяет MsiOpenDatabase в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Установщик 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 |
Целевая платформа | Windows |
Header | msiquery.h |
Библиотека | Msi.lib |
DLL | Msi.dll |