Função MsiDatabaseGenerateTransformA (msiquery.h)
A função msiDatabaseGenerateTransform
Sintaxe
UINT MsiDatabaseGenerateTransformA(
[in] MSIHANDLE hDatabase,
[in] MSIHANDLE hDatabaseReference,
[in] LPCSTR szTransformFile,
[in] int iReserved1,
[in] int iReserved2
);
Parâmetros
[in] hDatabase
Manipule para o banco de dados obtido de msiOpenDatabase que inclui as alterações.
[in] hDatabaseReference
Manipule para o banco de dados obtido de MsiOpenDatabase que não inclua as alterações.
[in] szTransformFile
Uma cadeia de caracteres terminada em nulo que especifica o nome do arquivo de transformação que está sendo gerado. Esse parâmetro pode ser nulo. Se szTransformFile for nulo, você poderá usar MsiDatabaseGenerateTransform para testar se dois bancos de dados são idênticos sem criar uma transformação. Se os bancos de dados forem idênticos, a função retornará ERROR_NO_DATA. Se os bancos de dados forem diferentes, a função retornará NOERROR.
[in] iReserved1
Esse é um argumento reservado e deve ser definido como 0.
[in] iReserved2
Esse é um argumento reservado e deve ser definido como 0.
Valor de retorno
A função msiDatabaseGenerateTransform
Observações
Para gerar um arquivo de diferença entre dois bancos de dados, use a função msiDatabaseGenerateTransform
Para tabelas que existem em ambos os bancos de dados, a única diferença entre os dois esquemas permitidos é a adição de colunas ao final da tabela de referência. Você não pode adicionar colunas de chave primária a uma tabela ou alterar a ordem ou nomes ou definições de coluna das colunas existentes, conforme definido na tabela base. Em outras palavras, se nenhuma das tabelas contiver dados e colunas forem removidas da tabela de referência, a tabela resultante será idêntica à tabela base.
Como o delimitador de lista para transformações, fontes e patches é um ponto e vírgula, esse caractere não deve ser usado para nomes de arquivo ou caminhos.
Essa função não gera um fluxo de informações de resumo. Use MsiCreateTransformSummaryInfo para criar o fluxo para uma transformação existente.
Se szTransformFile for nulo, você poderá testar se dois bancos de dados são idênticos sem criar uma transformação. Se os bancos de dados forem idênticos, ERROR_NO_DATA será retornado, NOERROR será retornado se forem encontradas diferenças.
Essa função não pode ser chamada de ações personalizadas. Uma chamada para essa função de uma ação personalizada faz com que a função falhe.
Se a função falhar, você poderá obter informações de erro estendidas usando msiGetLastErrorRecord.
Nota
O cabeçalho msiquery.h define MsiDatabaseGenerateTransform como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows Installer 5.0 no Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 no Windows Server 2008 ou Windows Vista. Windows Installer no Windows Server 2003 ou Windows XP |
da Plataforma de Destino |
Windows |
cabeçalho | msiquery.h |
biblioteca | Msi.lib |
de DLL |
Msi.dll |