使用SQL2005的驱动连接MSSQL2005,如下
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";
运行一段错误的SQL,抛出的异常却是:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]略。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
.........
会有这种情况吗?谢谢
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";
运行一段错误的SQL,抛出的异常却是:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]略。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
.........
会有这种情况吗?谢谢
URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";
这个没有写错啊!
1楼写的是SQL2000的.你如果确定是SQL2005,那可能其他的有问题或驱动包放好了吗?
看2000???
我没用过sqlserver2005,不知道是不是还要打补丁呢?sqlserver2000就要打补丁
如下两个都加载
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//SQL2000
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//SQL2005con= DriverManager.getConnection(jdbc:sqlserver://localhost:1433;DatabaseName=tempdb");//SQL2005标准写法是不是java把sql2005与sql2000的驱动做为一个SQL的驱动进行加载呢,后加载的无效,
我记得应该是根据URL来选择驱动的?
这有可能吗?
从错误信息可以看出你用的jdbc driver 是SQLServer 2000的,版本不一致.
所以把SQLServer 2000 jdbc driver先卸载,装上2005的driver.
换成一样的就行了
若在同一进程中加载 Microsoft SQL Server 2000 JDBC 驱动程序和
Microsoft SQL Server 2005 JDBC 驱动程序,则在某些情况下,
JDBC 驱动程序的 2000 版本将错误地接受用于 JDBC 驱动程序的
2005 版本的 DriverManager.getConnection 方法调用。该问题的原因是:若先加载 JDBC 驱动程序的 2000 版本,
则该程序将错误地接受“jdbc:sqlserver://”URL 前缀。 Microsoft 已意识到该问题,并计划在 JDBC 驱动程序的 2000 版本
中解决该问题。要解决该问题,请先加载 JDBC 驱动程序类的 2005 版本,如下所示:Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 2005 版本
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 版本这将确保“jdbc:sqlserver://”URL 前缀由
JDBC 驱动程序的 2005 版本处理,而“jdbc:microsoft:sqlserver://”
URL 前缀将由 JDBC 驱动程序的 2000 版本处理。
再帮我看看下面这个贴子
http://topic.csdn.net/u/20071202/14/b875aad5-5588-4779-bba1-7b2bd7a1c9e3.html