我在我的 PC(32 位)和服务器上安装了 Informix Client SDK。我可以轻松地在我的 PC 上创建 ODBC 连接,但在 Windows 2003 和 2008(64 位)上却无法创建。
我不知道是否有 64 位 SDK;也许这就是问题所在。但我还没找到解决办法。
我需要使用 ODBC,因为使用 SDK 本身会导致 IIS 挂起,并且根据这篇文章,解决办法是使用ODBC。
谢谢
答案1
我已找到方法。
问题是服务器是 64 位的,而我的工作站是 32 位的。
IIS 应用程序是 32 位的,因此 ODBC 连接也必须是 32 位的。
要在 64 位 Windows 上访问 32 位 ODBC,您应该执行c:\windows\syswow64\odbcad32.exe
而不是c:\windows\system32\odbcad32.exe
。
现在我可以添加 Informix 的数据连接。
希望这对某些人有帮助。
更新:这不适用于 Windows Server 2008 :(
答案2
64 位 Windows(所有版本)都支持 32 位和 64 位可执行文件和库。
使用 ODBC 的应用程序的位数决定了它可以使用驱动程序的位数。32 位 IIS 需要 32 位 ODBC 驱动程序和 32 位客户端 SDK。64 位 IIS 可以设置为在 32 位模式下运行,在这种情况下,它需要 32 位 ODBC 驱动程序和 32 位客户端 SDK。在默认的 64 位模式下,64 位 IIS 需要 64 位 ODBC 驱动程序和 64 位客户端 SDK。
32 位 ODBC 驱动程序使用 32 位 ODBC 管理器进行配置。在 64 位 Windows 上,这是C:\Windows\SysWoW64\odbcad32.exe
。在 32 位 Windows 上,这是C:\Windows\System32\odbcad32.exe
。
64 位 ODBC 驱动程序使用 64 位 ODBC 管理器进行配置。在 64 位 Windows 上,这是C:\Windows\System32\odbcad32.exe
。在 32 位 Windows 上,这不存在。
在几乎所有情况下,系统 DSN 都是您的最佳选择。用户 DSN 很少是最佳选择。
一般来说,无论目标 Informix 实例的版本如何,您都需要最新版本的 Informix CSDK。鉴于目标 Informix 实例与 CSDK 不在同一台机器上,CSDK 和目标实例的位数可以匹配,但不必匹配。