今天将一个SQL2000备份的bak还原到SQL2005进行连接,抛出异常如下: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。
最后解决办法:
1.下载SQL2005驱动包,链接地址:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=E22BC83B-32FF-4474-A44A-22B6AE2C4E17&displaylang=zh-cn
2.解压后,将sqljdbc.jar拷贝到项目lib目录下,build path。
修改1:
- Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 version
- Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 version
修改2:
- Connection con = DriverManager.getConnection("jdbc:sqlserver://<ServerName>;user=<UserName>;password=<Password>");//2005 version
- Connection con = DriverManager.getConnection("jdbc:microsoft:sqlserver://<ServerName>;user=<UserName>;password=<Password>");//2000 version
如:
- //SQL2005 version
- connection.driver_class=com.microsoft.sqlserver.jdbc.SQLServerDriver
- Connection.url=jdbc:sqlserver://localhost:1433;DatabaseName=Hello