Метод 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 , представляющий существующую или новую открытую базу данных установщика.

Remarks

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

Чтобы внести и сохранить изменения в базе данных, сначала откройте базу данных в транзакции (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-000000000046