Поделиться через


Метод Installer.OpenDatabase

Метод OpenDatabase объекта Installer открывает существующую базу данных или создает новую, возвращая объект Database . Если не удается успешно создать и открыть объект Database , возникает ошибка.

Синтаксис

Installer.OpenDatabase(
  name,
  openMode
)

Параметры

name

Обязательная строка, содержащая путь к базе данных. Если указана пустая строка, создается временная база данных, которая не сохраняется.

openMode

Параметр из следующего списка или строка, содержащая путь к новому выходному файлу базы данных, в который необходимо записаться после фиксации.

Параметр Значение
msiOpenDatabaseModeReadOnly
0
Открывает базу данных только для чтения без постоянных изменений.
msiOpenDatabaseModeTransact
1
Открывает базу данных для чтения и записи в режиме транзакций.
msiOpenDatabaseModeDirect
2
Открывает базу данных с прямым чтением и записью без транзакции.
msiOpenDatabaseModeCreate
3
Создает новую базу данных в режиме чтения и записи в режиме транзакций.
msiOpenDatabaseModeCreateDirect
4
Создает новую базу данных в режиме чтения и записи в прямом режиме.
msiOpenDatabaseModeListScript
5
Открывает базу данных для просмотра файлов скриптов объявления, например файлов, созданных методом CreateAdvertiseScript .
msiOpenDatabaseModePatchFile
32
Добавляет этот флаг для обозначения файла исправлений.

 

Возвращаемое значение

Объект Database , представляющий существующую или новую открытую базу данных установщика.

Комментарии

Когда база данных открывается в качестве выходных данных другой базы данных, поток сводной информации выходной базы данных фактически является зеркало исходной базы данных только для чтения и поэтому не может быть изменен. Кроме того, он не сохраняется в базе данных. Чтобы создать или изменить сводную информацию для выходной базы данных, ее необходимо закрыть и снова открыть.

Чтобы внести и сохранить изменения в базе данных, сначала откройте базу данных в режиме транзакций (msiOpenDatabaseModeTransact), создайте (msiOpenDatabaseModeCreate или msiOpenDatabaseModeCreateDirect) или прямом режиме (msiOpenDatabaseModeDirect). После внесения изменений всегда вызывайте метод Commit перед закрытием дескриптора базы данных. Метод Commit очищает все буферы.

Перед закрытием базы данных всегда вызывайте метод Commit для базы данных, открытой в прямом режиме (msiOpenDatabaseModeDirect или msiOpenDatabaseModeCreateDirect). В этом случае база данных может повредиться.

Так как метод OpenDatabase инициирует доступ к базе данных, его нельзя использовать с запущенной установкой.

В случае сбоя метода можно получить расширенные сведения об ошибке с помощью метода LastErrorRecord .

Требования

Требование Значение
Версия
Установщик 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
DLL
Msi.dll
IID
IID_IInstaller определяется как 000C1090-0000-0000-C000-0000000000046