Como implementar uma função de chamada de retorno do SQL Server 2000 Desktop Engine e exemplo

Traduções de Artigos Traduções de Artigos
Artigo: 315463 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como implementar uma função de chamada de retorno durante a instalação do SQL Server 2000 Desktop Engine (MSDE 2000) e também aborda todas as condições que têm de ser cumpridas para garantir que a função de chamada de retorno é executado correctamente.

O SQL Server 2000 Desktop Engine (MSDE 2000) é uma versão redistribuível do motor de base de dados relacional no Microsoft SQL Server 2000. Permite uma aplicação que utiliza o motor de base de dados relacionais SQL Server para instalar o motor como uma parte do processo de configuração da aplicação.

O pacote de instalação MSDE 2000 permite-lhe utilizar uma função de chamada de retorno para controlar o progresso ou para efectuar acções personalizadas durante a configuração.

Condições de utilização da função de chamada de retorno

Para a função de chamada de retorno ser executada normalmente, é necessário reunir as seguintes condições:
  • Tem de implementar a função de chamada de retorno como um Windows Installer personalizada acção tipo 1 dinâmica ligada biblioteca (DLL). Por exemplo, pode utilizar o Assistente do Microsoft Visual C++ expandido armazenadas procedimento para criar uma chamada de retorno DLL.

    Para obter mais informações sobre os tipos de biblioteca do Windows Installer, visite o seguinte Web site da Microsoft Developer Network (MSDN):
    http://msdn.microsoft.com/library/en-us/msi/cact_6a05.asp?frame=true
  • A função de chamada de retorno tem de residir em qualquer uma das seguintes pastas:
    • A pasta que é devolvida pela chamada GetTempPath Win32.
    • A pasta {Product code} que se encontra na pasta que é devolvida pela chamada GetTempPath Win32.

      Nota {Product code} é um marcador para o código de produto da instância do MSDE 2000 instalado no computador.
    Normalmente, a pasta que é devolvida por Win32 GetTempPath chamada é a variável de ambiente TMP % . Se a variável de ambiente TMP % não estiver disponível, é a variável de ambiente % TEMP % .

    Para mais informações sobre a função de Win32 GetTempPath , visite o seguinte Web site da Microsoft Developer Network (MSDN):
    http://msdn.microsoft.com/library/en-us/fileio/base/gettemppath.asp

  • A função de chamada de retorno Desktop Engine tem de ter um parâmetro UINT adicional que contém o código de saída Desktop Engine ou código de retorno. A definição de uma função de chamada de retorno é semelhante ao
    UINT __stdcall MyCallbackFunction(MSIHANDLE hinstall, UINT uExitCode)
    						
    onde uExitCode contém a configuração de ambiente de trabalho motor código de saída ou código de retorno.

Os passos de exemplo e o código para implementar uma função de chamada de retorno

Os passos seguintes descrevem a implementação de uma função de chamada de retorno de exemplo utilizando o Microsoft Visual Studio 6.0.

  1. Na IDE do Microsoft Visual C++ 6.0, clique em ficheiro e, em seguida, clique em Novo . No separador ' projectos ', clique no Assistente expandido Proc. armazenado.
  2. Especifique um nome de projecto. Por exemplo, MyCallback . Também pode especificar a localização na qual pretende criar o projecto. Clique em OK .
  3. Especificar um nome para a função de chamada de retorno. Por exemplo, MyCallbackFunction . Repare que o exemplo utiliza o assistente expandido Proc. armazenado para criar uma chamada de retorno DLL. O assistente recomenda que especifique um nome começado por "XP_". No entanto, pode ignorar a recomendação e especificar o nome de função de chamada de retorno da sua escolha. Clique em Concluir .
  4. Isto vai criar as classes e os ficheiros cpp necessários. No painel da área de trabalho, verá a área de trabalho para este projecto. Seleccione a Exibir classe e, em seguida, expanda a pasta Globals na árvore da MyCallback classes . Aí poderá ver a definição da função MyCallbackFunction .

    O código de exemplo para a função de chamada de retorno é no cabeçalho do Código de exemplo seguinte. Pode testar o projecto copiando o seguinte código para a função MyCallbackFunction .

    Código de exemplo

    #include <stdafx.h>
    
    #define XP_NOERROR 0
    #define XP_ERROR 1
    #define MAXCOLNAME 25
    #define MAXNAME 25
    #define MAXTEXT 255
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    UINT __declspec(dllexport) MyCallbackFunction(HANDLE hinstall, UINT uExitCode);
    
    #ifdef __cplusplus
    }
    #endif
    
    UINT __declspec(dllexport) MyCallbackFunction(HANDLE hinstall, UINT uExitCode)
    {
    
         TCHAR buffer[1024];
    
         wsprintf(buffer, TEXT("**Callback** Return code is %d"), uExitCode);
    
         MessageBox(NULL, buffer, TEXT("MyCallbackFunction Dialog"), MB_OK);
    
         return 0;
    }
    					
    Este exemplo de função de chamada de retorno apresenta uma caixa de mensagem com este texto em cada chamada:
    **Callback** Return code is 0
    					
  5. Crie o ficheiro MyCallback.dll utilizando o menu criar . A DLL é criada e guardada numa subpasta denominada Debug , na mesma localização que especificou no passo 2.
  6. Depois da DLL é criada, tem de copiar a DLL para uma localização que depende da versão do MSDE 2000 instalado no computador.
    • Se estiver a utilizar o Microsoft SQL Server 2000 Desktop Engine SP2, terá de copiar a DLL para a localização é definida por uma das seguintes variáveis de ambiente:
      • % TMP %
      • % TEMP % .
      Para obter o ambiente de valores de variáveis num computador específico para o utilizador actualmente com sessão iniciada, escreva o seguinte comando numa linha de comandos:
      SET
      Este comando apresenta todas as variáveis de ambiente, incluindo TMP e TEMP .
    • Se estiver a utilizar o Microsoft SQL Server 2000 Desktop Engine SP3a, terá de copiar a DLL a uma das seguintes localizações:
      • %TMP%\ {Product code}
      • %TEMP%\ {Product code}
      Nota {Product code} é um marcador para o código de produto da instância do MSDE 2000 instalado no computador.

      Por exemplo, se a instância MSDE 2000 tem um código de produto de E09B48B5-E141-427A-AB0C-D3605127224A, terá de copiar a DLL para o % TMP%\{E09B48B5-E141-427A-AB0C-D3605127224A} ou % TEMP%\{E09B48B5-E141-427A-AB0C-D3605127224A} pasta.
  7. Utilize a opção ambiente de trabalho motor Windows Installer CALLBACK para invocar a função de chamada de retorno durante a configuração. Por exemplo:
    CALLBACK=Dllname!CallbackFunctionName
    para este exemplo a sintaxe é:
    setup.exe /L*v c:\msde_setup.log CALLBACK=MyCallback!MyCallbackFunction
    					

Referências

Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
299795A criar pacotes de configuração do MSDE 2000 com o Microsoft Visual Studio Installer 1.1


Windows Installer SDK faz parte do Microsoft Platform Software Development Kit (SDK). Para obter mais informações sobre o Platform SDK, visite o seguinte Web site da Microsoft:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
SQL Server 2000 Books Online; tópicos: "Aplicações de servidor SQL criar"; "Distribuir o SQL Server Applications" "Distributing SQL com aplicações de servidor"; "Ambiente de trabalho motor Windows Installer códigos devolvidos"; "Ambiente de trabalho motor Windows Installer chamada de retorno funções"

Propriedades

Artigo: 315463 - Última revisão: 23 de janeiro de 2014 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhowtomaster KB315463 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315463

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com