【发布时间】:2019-03-27 09:01:10
【问题描述】:
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)
DIAG [HY096] [Honeywell][ODBC Driver]信息类型超出范围 (1043)
....
诊断 [HYC00] [霍尼韦尔][ODBC 驱动程序]驱动程序不支持 (1010)
所以,由于没有更新的驱动程序可供使用 - 我需要我的应用程序使用 ODBC 2.x - 但它仍然使用 ODBC 3.x。
【问题讨论】:
-
您可以在控制面板中设置 ODBC 数据源:管理工具:ODBC 数据源