Método Installer.OpenDatabase

O método OpenDatabase do objeto Installer abre um banco de dados existente ou cria um novo, retornando um objeto Database. Ele gerará um erro se o objeto Database não puder ser criado e aberto com êxito.

Sintaxe

Installer.OpenDatabase(
  name,
  openMode
)

Parâmetros

name

Cadeia de caracteres exigida que contém o nome do banco de dados. Se uma cadeia de caracteres vazia for fornecida, será criado um banco de dados temporário que não é persistente.

openMode

Um parâmetro da lista a seguir ou uma cadeia de caracteres que contém o nome do caminho do novo arquivo de banco de dados de saída que deve ser gravado no após a confirmação.

Parâmetro Significado
msiOpenDatabaseModeReadOnly
0
Abre um banco de dados somente leitura, sem alterações persistentes.
msiOpenDatabaseModeTransact
1
Abre um banco de dados de leitura/gravação no modo de transação.
msiOpenDatabaseModeDirect
2
Abre um banco de dados de leitura/gravação direta sem transação.
msiOpenDatabaseModeCreate
3
Cria um novo banco de dados, o modo de transação leitura/gravação.
msiOpenDatabaseModeCreateDirect
4
Cria um novo banco de dados, leitura/gravação no modo direto.
msiOpenDatabaseModeListScript
5
Abre um banco de dados para exibir arquivos de script de anúncio, como os arquivos gerados pelo método CreateAdvertiseScript .
msiOpenDatabaseModePatchFile
32
Adiciona esse sinalizador para indicar um arquivo de patch.

 

Valor retornado

Um objeto Database que representa o banco de dados instalador existente ou novo que foi aberto.

Comentários

Quando um banco de dados é aberto como saída de outro banco de dados, o fluxo de informações de resumo do banco de dados de saída é, na verdade, um espelho somente leitura do banco de dados original e, portanto, não pode ser alterado. Além disso, ele não é persistente com o banco de dados. Para criar ou modificar as informações de resumo do banco de dados de saída, ele deve ser fechado e reaberto.

Para fazer e salvar alterações em um banco de dados, primeiro abra o banco de dados na transação (msiOpenDatabaseModeTransact), crie (msiOpenDatabaseModeCreate ou msiOpenDatabaseModeCreateDirect) ou o modo direto (msiOpenDatabaseModeDirect). Depois de fazer as alterações, sempre chame o método Commit antes de fechar o identificador do banco de dados. O método Commit libera todos os buffers.

Sempre chame o método Commit em um banco de dados que foi aberto no modo direto (msiOpenDatabaseModeDirect ou msiOpenDatabaseModeCreateDirect) antes de fechar o banco de dados. A falha ao fazer isso pode corromper o banco de dados.

Como o método OpenDatabase inicia o acesso ao banco de dados, ele não pode ser usado com uma instalação em execução.

Caso o método falhe, é possível obter informações sobre os erros estendidos usando o método LastErrorRecord.

Requisitos

Requisito Valor
Versão
Windows Installer 5.0 no Windows Server 2012, no Windows 8, no Windows Server 2008 R2 ou no Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou no Windows Vista. Windows Installer no Windows Server 2003 ou no Windows XP
DLL
Msi.dll
IID
O IID_IInstaller é definido como 000C1090-0000-0000-C000-000000000046