与MS SQL Server 2012的JDBC连接错误

时间:2016-09-03 17:43:07

标签: java sql-server-2012 odbc jdbc-odbc

我有一台带有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安装任何驱动程序吗?

1 个答案:

答案 0 :(得分:1)

您使用的是过时且过时的驱动程序版本。该错误是SQLServer 2000 driver

中的错误导致的

。要解决此问题,您需要将驱动程序更新到更新的版本。有关错误原因和解决方案的更多具体信息,请参阅:

Microsoft KB Article 915834

要升级到更高版本(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以外的站点下载,请确保在使用之前对该文件进行病毒扫描。