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

Traduções deste artigo Traduções deste artigo
ID do artigo: 315463 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

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

O SQL Server 2000 Desktop Engine (MSDE 2000) é uma versão redistribuível do mecanismo de banco de dados relacional no Microsoft SQL Server 2000. Ele permite que um aplicativo que usa o mecanismo de banco de dados relacional do SQL Server para instalar o mecanismo como parte do processo de instalação do aplicativo.

O pacote de instalação MSDE 2000 permite que você use uma função de retorno de chamada para controlar o andamento ou para executar ações personalizadas durante a instalação.

Condições para uso a função de retorno de chamada

Para a função retorno de chamada ser executado normalmente, as seguintes condições devem ser atendidas:
  • Você deve implementar a função de retorno de chamada como um Windows Installer personalizado ação tipo 1 dinâmico vinculadas Library (DLL). Por exemplo, você pode usar o Microsoft Visual C++ estendido armazenados procedimento Wizard para criar um retorno de chamada de DLL.

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

      Observação {o Product code} é um espaço reservado para o código do produto da instância do MSDE 2000 instalado em seu computador.
    Normalmente, a pasta que é retornada 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 obter mais informações sobre a função do Win32 GetTempPath , visite o seguinte site da Web Microsoft Developer Network (MSDN):
    http://msdn.microsoft.com/library/en-us/fileio/base/gettemppath.asp

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

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

As etapas a seguintes descrevem a implementação de uma função de retorno de chamada de exemplo usando o Microsoft Visual Studio 6.0.

  1. No IDE do Microsoft Visual C++ 6.0, clique em arquivo e, em seguida, clique em novo . Na guia projetos , clique no Assistente estendido PROC. armazenado.
  2. Especifique um nome de projeto. Por exemplo, MyCallback . Você também pode especificar o local em que você deseja criar o projeto. Clique em OK .
  3. Especifique um nome para a função de retorno de chamada. Por exemplo, MyCallbackFunction . Observe que o exemplo usa o Assistente estendido PROC. armazenado para criar um retorno de chamada de DLL. O assistente recomenda que você especifique um nome começando com "XP_". No entanto, você pode ignorar a recomendação e especificar o nome de função de retorno de chamada de sua escolha. Clique em Concluir .
  4. Isso criará as classes e os arquivos cpp necessários. No painel de espaço de trabalho, você verá o espaço de trabalho para este projeto. Selecione ClassView e, em seguida, expanda a pasta globais na árvore de MyCallback classes . Existe, você verá a definição da função MyCallbackFunction .

    O código de exemplo para a função de retorno de chamada é no título do Código de exemplo seguinte. Você pode testar o projeto, copiando o código a seguir 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 retorno de chamada exibe uma caixa de mensagem com este texto em cada chamada:
    **Callback** Return code is 0
    					
  5. Criar o arquivo MyCallback.dll usando o menu Build . A DLL é criada e salvo em uma subpasta chamada Debug , no mesmo local que você especificou na etapa 2.
  6. Depois que a DLL é criada, você deve copiar a DLL para um local que depende da versão do MSDE 2000 instalado em seu computador.
    • Se você estiver usando o Microsoft SQL Server 2000 Desktop Engine SP2, você deve copiar a DLL para o local que é definido por uma das seguintes variáveis de ambiente:
      • % TMP %
      • % TEMP % .
      Para obter o ambiente de valores de variáveis em um computador específico para o usuário que está conectado no momento, digite o seguinte comando em um prompt de comando:
      SET
      Este comando exibe todas as variáveis de ambiente, incluindo TMP e TEMP .
    • Se você estiver usando o Microsoft SQL Server 2000 Desktop Engine SP3a, você deve copiar a DLL para um dos seguintes locais:
      • %TMP%\ {Product code}
      • %TEMP%\ {Product code}
      Observação {Product code} é um espaço reservado para o código do produto da instância do MSDE 2000 instalado em seu computador.

      Por exemplo, se sua instância do MSDE 2000 tiver um código de produto de E09B48B5-E141-427A-AB0C-D3605127224A, você deve copiar a DLL para o % TMP%\{E09B48B5-E141-427A-AB0C-D3605127224A} ou % TEMP%\{E09B48B5-E141-427A-AB0C-D3605127224A} pasta.
  7. Use a opção Área de trabalho mecanismo Windows Installer CALLBACK para invocar a função de retorno de chamada durante a instalaçã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 abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
299795Como criar pacotes de instalação do MSDE 2000 com o Microsoft Visual Studio Installer 1.1


SDK do Windows Installer é parte do Microsoft Platform Software Development Kit (SDK). Para obter mais informações sobre o Platform SDK, visite o seguinte site:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Manuais online do SQL Server 2000; tópicos: "Building SQL Server Applications"; "Distribuindo o SQL Server Applications"; "Distribuindo SQL Server com aplicativos"; "Desktop mecanismo Windows Installer retornar códigos"; "Desktop mecanismo Windows Installer Callback funções"

Propriedades

ID do artigo: 315463 - Última revisão: quinta-feira, 24 de outubro de 2013 - 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315463

Submeter comentários

 

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