日期:2014-05-20  浏览次数:20784 次

有过使用JCreator和Sqlserver2008开发经验的进
在JCreator下开发程序,连接Sqlserver2008 数据库 提示如下错误:

com.microsoft.sqlserver.jdbc.SQLServerException: 不支持此服务器版本。目标服务器必须是 SQL Server 2000 或更高版本。 
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) 
at com.microsoft.sqlserver.jdbc.DBComms.Prelogin(Unknown Source) 
at com.microsoft.sqlserver.jdbc.DBComms.<init>(Unknown Source) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source) 
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
…………………………
核心代码如下:
public void doGet(HttpServletRequest req,HttpServletResponse res)
Connection cn = null;
Statement sm = null;
ResultSet rs = null;

try{
//接受从客户端发来的信息
String usn = req.getParameter("username");//表单控件的名字
String pwd = req.getParameter("password");


//连接数据库
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.获取连接
cn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=logindb","sa","");
//3.创建Statement
sm = cn.createStatement();
rs = sm.executeQuery("select top 1 passwd from users where username ='"+usn+"'");

}catch(Exception ex){
ex.printStackTrace();

}
}

//处理post请求
//req:用于获取客户端的信息
//res:用于向客户端返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);

}



经过验证,上面的代码完全正确,在tomcat相应的文件夹下面也有Sqlserver2008相应的驱动包(sqljdbc4.jar),但是就是在连接数据库的时候出现了上述的错误!求碰到这个问题的大虾们解决一下,分享一下宝贵的经验!!谢谢各位!

------解决方案--------------------
你好,我以前也碰到过这个问题,我是这样解决的:
以前我碰到的时候是,在Tomcat/common/lib 目录下我自己以前装sqlserver2005时有一个sqljdbc.jar 文件,在装了Sqlserver2008后在这个目录下添加了sqljdbc4.jar这个包,出现了冲突,后来把sqljdbc.jar删掉后 问题解决了!
你可以检查一下你是否犯了这样的错误!希望能帮到你!