应用程序通过ODBC访问Sage Line 50数据时出错

时间:2012-08-03 13:24:10

标签: c# .net odbc windows-server-2008-r2 sage-line-50

我开发了一个简单的基于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配置也已得到确认。

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

我没有重新启动服务器,因为将DLL文件复制到旧文件(它是生产服务器)。服务器是否需要重新启动才能使新DLL生效,或者是否有其他方法可以触发此操作?

也许我正在咆哮错误的树,Sage ODBC驱动程序DLL版本无关紧要吗?非常感谢任何帮助。


修改

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

3 个答案:

答案 0 :(得分:5)

在干净的Windows 8上安装时遇到同样的问题。修复是安装.net 3.5运行时。

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

我最终试图在服务器上安装完全安装的Sage帐户(yuk!),应用了自动更新,现在我的应用程序运行正常。