一个64位的SQL Server只能调用64位的DLL。
以下是一些可能的解决scheme的快速列举,每种解决scheme都有自己的瑕疵/缺陷,顺序不限:
- 你可以试试,但是我不能担保。 这似乎是一个黑客,除非我绝望,否则我不会尝试。
- 与供应商交谈,看看是否有一个64位版本的DLL。 (以防万一:您(可能)需要64位x86版本,64位Itanium版本不会)。
- 将DLL重新编译为64位DLL。
- 使用直接的Transact SQL重写该DLL。 (作为改造/现代化项目的一部分,我已经这样做了,但是只有一些非常简单的DLL,可能并不需要扩展程序。)
- 使用.Net和SQLCLR重写DLL。 (这是最好的事情,长期的IMO。)
- find一个32位的服务器,在那里安装DLL,并通过链接服务器从64位服务器调用它。
- find一种通过XP_COMMANDSHELL或作业步骤使用DLL的方式,或者通过其他一些机制来运行它。
这是遗留问题的常见问题。 例如,(直到最近)只有32位版本的Fox Pro ODBC驱动程序,它们只是DLL。