Função MsiOpenDatabaseA (msiquery.h)
A função MsiOpenDatabase abre um arquivo de banco de dados para acesso a dados. Essa função retorna um identificador que deve ser fechado usando MsiCloseHandle.
Sintaxe
UINT MsiOpenDatabaseA(
[in] LPCSTR szDatabasePath,
[in] LPCSTR szPersist,
[out] MSIHANDLE *phDatabase
);
Parâmetros
[in] szDatabasePath
Especifica o caminho completo ou o caminho relativo para o arquivo de banco de dados.
[in] szPersist
Recebe o caminho completo para o arquivo ou o modo de persistência. Você pode usar o parâmetro szPersist para direcionar a saída persistente para um novo arquivo ou para especificar um dos seguintes modos de persistência predefinidos.
[out] phDatabase
Ponteiro para o local do identificador de banco de dados retornado.
Retornar valor
A função MsiOpenDatabase retorna os seguintes valores:
Comentários
Para fazer e salvar alterações em um banco de dados, primeiro abra o banco de dados no modo de transação (MSIDBOPEN_TRANSACT), criar (MSIDBOPEN_CREATE ou MSIDBOPEN_CREATEDIRECT) ou direto (MSIDBOPEN_DIRECT). Depois de fazer as alterações, sempre chame MsiDatabaseCommit antes de fechar o identificador do banco de dados. MsiDatabaseCommit libera todos os buffers.
Sempre chame MsiDatabaseCommit em um banco de dados que foi aberto no modo direto (MSIDBOPEN_DIRECT ou MSIDBOPEN_CREATEDIRECT) antes de fechar o identificador do banco de dados. A falha ao fazer isso pode corromper o banco de dados.
Como o MsiOpenDatabase inicia o acesso ao banco de dados, ele não pode ser usado com uma instalação em execução.
Observe que é recomendável usar variáveis do tipo PMSIHANDLE porque o instalador fecha objetos PMSIHANDLE à medida que eles saem do escopo, enquanto você deve fechar objetos MSIHANDLE chamando MsiCloseHandle. Para obter mais informações, confira a seção Use PMSIHANDLE em vez de HANDLE nas Melhores práticas do Windows Installer.
Observação
O cabeçalho msiquery.h define MsiOpenDatabase como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | 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 |
Plataforma de Destino | Windows |
Cabeçalho | msiquery.h |
Biblioteca | Msi.lib |
DLL | Msi.dll |