连接代码:
         String pic1,pic2;
String DBname="games;";//数据库名字
String url="jdbc:microsoft:sqlserver://172.16.21.20:1433;DatabaseName="+DBname;
try
{     
    DriverManager msDriver=null;
    //SQL server数据库驱动
    msDriver.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
    //连接数据库
    Connection con=msDriver.getConnection(url,"sa","zdzd");
    //发送SQL语句对象
    Statement stmt=con.createStatement();
    //得到结果集
    ResultSet result=stmt.executeQuery(sql);
    while(result.next()){
     pic1=result.getString("pic1");
     pic2=result.getString("pic2");
     }
    System.out.println(pic1);
    System.out.println(pic2);
    result.close();
    stmt.close();
    con.close();    
}
//异常显示
    catch(SQLException ex)
    {
     System.out.println("SQL"+ex.getMessage());
    }
    catch(java.lang.Exception ex1)
    {
     System.out.println("lang"+ex1.getMessage());
    }如果把IP地址改成127.0.0.1或者localhost运行准确 但是改成另一台机器的IP会出错
出错信息:
SQL[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
请问是什么原因 怎么解决?
      
        注:用户名密码没错 端口号也可以打开~对方SQL开启,防火墙双方关闭

解决方案 »

  1.   

    我觉得127.0.0.1是一个网络回环检测地址,在所有检测的过程中一般都能通过。假如在输入其它的IP后出现“Error establishing socket”,我建议你装一个SQLServer 2000 Driver for JDBC。
      

  2.   

    用jtds的jdbc driver试试吧。
      

  3.   

        DriverManager msDriver=null;
        //SQL server数据库驱动
        msDriver.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver());
    这种方式看的很别扭,GOOGLE一下,用通用的方式连接。可能是你这个注册驱动有问题
      

  4.   

    对方SQL SERVER装了 也开启了
    是驱动问题吗?还是SQL SERVER的设置问题啊?
    装了mssqlserver.jar,msutil.jar,msbase.jar
      

  5.   


    applet安全性问题
    其实其他我都弄好了
    怎么把这个忘记了呢
    散分
      

  6.   

    能告诉我你的mssqlserver.jar,msutil.jar,msbase.jar放在什么目录下吗?%CLASS_PATH%是怎样设置的呢?
      

  7.   

    用SQLServer企业管理器能连上的话应该就可以用Java连的
    要不可能真是防火墙限制不让非本机访问呢,如XP自带放火墙