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:
- Você poderia tentar isso , mas não posso garantir isso. Parece um hack, e eu não tentaria a menos que estivesse desesperado.
- 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á.)
- Recompile a DLL como uma DLL de 64 bits.
- 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).
- Reescreva a DLL usando .Net e o SQLCLR. (Esta é a melhor coisa a fazer, a longo prazo. IMO.)
- Encontre um servidor de 32 bits, instale a DLL lá e chame-o do servidor de 64 bits por meio de um servidor vinculado.
- 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.