Odbc-driver 是 2.x 版,但在 Visual Studio 中,使用的是 3.x 版。需要以某种方式强制应用程序使用版本 2.x 现在,出现错误:“驱动程序不支持应用程序请求的 ODBC 行为版本(请参阅 SQLSetEnvAttr)。” - 但无法告诉应用程序使用其他版本
试图与霍尼韦尔系统通信。他们不以共享数据而闻名 - 但有一个 ODBC 驱动程序,由大约 15 年前的某人编写。在 Windows 2003 服务器上运行并在 Visual Studio 2005 中编译(在同一台服务器上)时,应用程序可以工作。在其他服务器上运行的相同应用程序:不工作。在任何其他机器上编译的应用程序(x86):不工作,不在旧服务器上,不在新服务器上。
不查找 , 上的属性或方法System.Data.Odbc.OdbcConnection
,以设置要使用的 ODBC 版本。
目前,运行应用程序时不会出现“错误”:它连接到 dsn,并且用户已通过身份验证。(更改用户名或密码会出错) - 但未获取任何数据。
跟踪对 ODBS 驱动程序的调用给出:
DIAG [IM006] [Microsoft][ODBC Driver Manager] 驱动程序的 SQLSetConnectAttr 失败 (0)
DIAG [01000] [Microsoft][ODBC Driver Manager] 驱动程序不支持应用程序请求的 ODBC 行为版本(请参阅 SQLSetEnvAttr)。(0)
……
DIAG [IM006] [Microsoft][ODBC Driver Manager] 驱动程序的 SQLSetConnectAttr 失败 (0)
诊断 [HY096] [霍尼韦尔][ODBC 驱动程序]信息类型超出范围 (1043)
……
诊断 [HYC00] [霍尼韦尔][ODBC 驱动程序]驱动程序不支持 (1010)
因此,由于没有更新的驱动程序可供使用——我需要我的应用程序使用 ODBC 2.x——但它仍然使用 ODBC 3.x。