import java.sql.*;
public class ConnJdbcOdbc{
public static void main(String[] arguments){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn=
DriverManager.getConnection("jdbc:odbc:northwind","sa","");
TryDirectConnection();
}catch(Exception e){
System.out.print(e.toString());
}
}

static void TryDirectConnection(){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=
DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=northwind","sa","");
//how to set timeout
}catch(Exception e){
System.out.print(e.toString()+" 2 ");
}
}
}
错误信息为:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 2 也就是说第一个 连接成功,第二个连接失败,还请教是什么原因

解决方案 »

  1.   

    我试过了,没有问题。
    你的SQL Server是不是没打sp3补丁?
      

  2.   

    谢谢,直接打了SP4就可以了
    另:我没有发现设置连接超时,不知道JAVA中没有这个概念
      

  3.   

    是你机器的原因,你的程序在我的机器上面可以直接运行的。
    估计是你SQL验证方面的问题,你把你的SQL验证改为混合验证方式,在试验一下。
      

  4.   

    用netstat -an查看端口情况,要是没找到1433端口就是没有打sp3补丁了,另外JDBC的三个驱动包一定加到classpath里