是否可以在 SQL Server 2008 x64 服务器上运行 32 位 DLL?我需要在存储过程中使用该 DLL。
谢谢
答案1
64 位 SQL Server 只能调用 64 位 DLL。
这里简要列举了一些可能的解决方案,每个解决方案都有自己的缺点/缺陷,无特定顺序:
- 你可以尝试这,但我不能保证。这似乎是一种黑客行为,除非我绝望,否则我不会尝试它。
- 与供应商联系,看看是否有 64 位版本的 DLL。(以防万一:您(可能)需要 64 位 x86 版本。64 位 Itanium 版本不行。)
- 将 DLL 重新编译为 64 位 DLL。
- 使用直接的 Transact SQL 重写 DLL。(我已经完成了这项工作,作为改造/现代化项目的一部分,但只使用了一些极其简单的 DLL,这些 DLL 可能一开始就不需要扩展程序。)
- 使用 .Net 和 SQLCLR 重写 DLL。(从长远来看,这是最好的做法。在我看来。)
- 找到一个 32 位服务器,在那里安装 DLL,然后通过链接服务器从 64 位服务器调用它。
- 找到一种通过 XP_COMMANDSHELL 或作业步骤使用 DLL 的方法,或者通过其他机制运行它。
这是遗留系统的一个常见问题。例如,(直到最近)只有 32 位版本的 Fox Pro ODBC 驱动程序,它们只是 DLL。