DLL de 32 bits no SQL Server 2008 x64

2

É possível executar uma DLL de 32 bits em um servidor SQL Server 2008 x64? Eu preciso usar a DLL dentro de um procedimento armazenado.

Obrigado

    
por Jason 25.01.2011 / 17:48

1 resposta

4

Um SQL Server de 64 bits só pode chamar DLLs de 64 bits.

Aqui está uma enumeração rápida de algumas possíveis soluções, cada uma com suas próprias verrugas / falhas, em nenhuma ordem específica:

  1. Você poderia tentar isso , mas não posso garantir isso. Parece um hack, e eu não tentaria a menos que estivesse desesperado.
  2. Fale com o fornecedor e veja se há uma versão de 64 bits da DLL. (Apenas no caso: Você (provavelmente) precisa de uma versão x86 de 64 bits. Uma versão de 64 bits do Itanium não funcionará.)
  3. Recompile a DLL como uma DLL de 64 bits.
  4. Reescreva a DLL usando o Transact SQL direto. (Eu fiz isso, como parte de um projeto de modernização / retrofit, mas apenas com algumas DLLs extremamente simplistas que provavelmente não precisavam ser estendidas em primeiro lugar).
  5. Reescreva a DLL usando .Net e o SQLCLR. (Esta é a melhor coisa a fazer, a longo prazo. IMO.)
  6. Encontre um servidor de 32 bits, instale a DLL lá e chame-o do servidor de 64 bits por meio de um servidor vinculado.
  7. Encontre uma maneira de usar a DLL por meio de XP_COMMANDSHELL ou de uma etapa de trabalho ou execute-a por meio de outro mecanismo.

Este é um problema comum com material legado. Por exemplo, (até recentemente) havia apenas 32 bits versões dos drivers Fox Pro ODBC, que são apenas DLLs.

    
por 25.01.2011 / 19:51