JDBC 连接到 MS SQL 服务器 2012 错误

JDBC connection to MS SQL Server 2012 error

我有一台装有 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][SQLServer 2000 Driver for JDBC][SQLServer]The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 1 (""): Data type 0x38 is unknown.

如何修复连接?我需要为 Windows 或 Java 安装任何驱动程序吗?

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

中的错误造成的

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

Microsoft KB Article 915834

要升级到更高版本的 (2005+) 驱动程序,您将需要更新文章中描述的 jar 文件和使用的连接字符串。如果您无权访问代码以进行更改,您将需要联系 Microsoft 并请求可用的修补程序来修复 2000 驱动程序中的错误,如知识库文章中所述和此处所示:

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the hotfix. For a complete list of Microsoft Product Support Services telephone numbers and information about support costs, visit the following Microsoft Web site: http://support.microsoft.com/contactus/?ws=support

也可能找到更高版本的 'patched' 驱动程序 .dll 文件。我能够在 URL: Sqlsrv32.dll 2000.086.4412.00 找到下载示例,该版本比您使用的版本更新,可能会更正问题。如果这不起作用,请搜索晚于此版本的下载,如您所见,它是内部版本 #4412。如果您从 Microsoft 以外的站点下载,请确保在使用前对文件进行病毒扫描。