我有一台带有Windows Server 2003 SP2的服务器和使用Java SE 5.0开发的第三方应用程序。此应用程序通过配置的ODBC源连接到外部数据库服务器。 在我的ODBC源中,我已将源配置为外部MS SQL服务器。我可以说它使用这个驱动程序:SQLSRV32.DLL版本:2000.86.3959.00。当我配置此源和测试连接时,它表示连接成功。
多年来,外部数据库服务器在MS SQL Server 2008下运行,一切正常。但现在他们迁移到MS SQL Server 2012,我的java应用程序失去了与它的连接,例外情况如下:
[Microsoft] [用于JDBC的SQLServer 2000驱动程序] [SQLServer]传入 表格数据流(TDS)远程过程调用(RPC)协议流 是不正确的。参数1(“”):数据类型0x38未知。
如何修复连接?我需要为Windows或Java安装任何驱动程序吗?
答案 0 :(得分:1)
您使用的是过时且过时的驱动程序版本。该错误是SQLServer 2000 driver
。要解决此问题,您需要将驱动程序更新到更新的版本。有关错误原因和解决方案的更多具体信息,请参阅:
要升级到更高版本(2005+)的驱动程序,您需要更新jar文件和使用的文章中描述的连接字符串。如果您无法访问代码进行更改,则需要与Microsoft联系并请求修复2000驱动程序中的错误的可用修补程序,如KB中所述并显示在此处:
要立即解决此问题,请与Microsoft产品支持联系 获取此修补程序的服务。有关Microsoft的完整列表 产品支持服务电话号码和信息 支持费用,请访问以下Microsoft网站: http://support.microsoft.com/contactus/?ws=support
也可以找到以后修补过的'驱动程序.dll文件的版本。我能够在此URL找到下载示例:Sqlsrv32.dll 2000.086.4412.00这是一个比您正在使用的版本更新的版本,可能会解决问题。如果那不能在此之后搜索下载,那么您可以看到构建#4412。如果从Microsoft以外的站点下载,请确保在使用之前对该文件进行病毒扫描。