我正在编写一个应用程序来与 VB.net 中的 Progress 数据库交互。我的开发机器是一台32位的Win 7电脑。我为需要使用的数据库配置了系统 DSN。由于它在 32 位机器上,因此它是 32 位 DSN。
应用程序在我的本地计算机上运行良好,当我尝试将它带到我们的一台 64 位机器时出现问题。现在 64 位机器上似乎安装了 32 位驱动程序(我打开C:\Windows\SysWow64\odbcad32.exe
它,根据研究,应该显示我的所有 32 位系统 DSN 和所有用户 DSN)和一个看似相同的 DSN(以相同的方式命名)存在于系统 DSN 中。
我尝试编译 forx86
而不是AllCPUs
,但仍然出现错误。一些错误如下。
有关如何解决此问题以使其在 64 位和 32 位计算机上运行的任何建议?有没有办法双重确保 64 位机器在 32 位 DSN 上工作?
我对错误 [IM014] 的理解是程序在 64 位机器上查找 DSN,但无法使用它,因为它是 32 位 DSN。
第二个错误的大部分错误都在这里。所有 08S01 都是“通信链路故障”,IM006 是“驱动程序的 SQLSetConnectOption 失败”,显然 HY000 有大约 20 种不同的含义。
DSN 连接字符串,目标 CPU:AllCPU,32 位机器:运行良好 DSN 连接字符串,目标 CPU:AllCPU,64 位机器:错误 [IM014] DSN 连接字符串,目标 CPU:x86,32 位机器:运行良好 DSN 连接字符串,目标 CPU:x86,64 位机器:错误 [HY000] [HYC00] [08S01] [08S01] [08S01] [IM006] '是的,最后一个错误中的所有错误都来自一次连接尝试。