1

我开发了一个简单的基于 C# 控制台的应用程序,用于从 Sage Line 50 中的表中提取一些数据,并将数据上传到 Web 服务器。它用于 Windows 7 x64 上的 ODBC 连接,并且运行良好。Sage 帐户数据位于映射的网络驱动器上。

我开发/测试过此软件的 PC 已完整安装 Sage Line 50 2011,带有 v17 ODBC 驱动程序,并已应用所有更新。

最终,应用程序将在我们的文件服务器上作为计划作业运行,但是当我尝试在我们的 Windows 2008 R2 文件服务器(托管 Sage 帐户数据的同一文件服务器)上运行代码时,ODBC 驱动程序抛出异常, 如下:

ERROR [28000] User ID or Password invalid
ERROR [01000] The driver returned invalid (or failed to return) SQL_DRIVER_ODBC_VER: 2.00
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the version of ODBC behavior that the application requested (see SQLSetEnvAttr).

密码错误是用词不当,因为我知道密码是正确的。ODBC 配置也已确认。

我只从安装 CD 安装了 Sage ODBC 驱动程序,因为我不想在我们的服务器上安装完整的 Sage 应用程序,并注意到 S17DBC32.dll 文件与我的工作站上安装的版本不同(可能由于 Sage 帐户安装的自动更新)。我尝试将这个较新的文件复制到我们文件服务器上原始文件的顶部,并重新创建了 ODBC 配置,但这没有帮助。

自从将 DLL 文件复制到旧的(它是生产服务器)上后,我还没有重新启动服务器。服务器是否需要重新启动才能使新的 DLL 生效,或者是否有其他触发方式?

也许我在叫错树,Sage ODBC 驱动程序 DLL 版本是否无关紧要?非常感谢任何帮助。


编辑

有机会重新启动服务器,新的 DLL 没有任何区别。我仍然看到同样的错误。

4

3 回答 3

5

在干净的 Windows 8 安装中遇到了同样的问题。解决方法是安装 .net 3.5 运行时。

在我的 .net 应用程序失败并出现相同的错误(MS-Access 抛出的相同错误没有提示安装)之后,Windows 实际上自己建议了它。

于 2012-11-11T11:01:28.097 回答
0

您需要安装 32 位驱动程序,如果您通过进入 64 位版本的控制面板访问 ODBC,您需要 C:\Windows\SysWOW64\odbcad32.exe

于 2014-02-26T14:49:19.153 回答
-1

我最终求助于在服务器上安装了 Sage Accounts 的完整安装(yuk!),应用了自动更新,现在我的应用程序工作正常。

于 2012-08-03T15:31:37.017 回答