java code:
try{
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
        System.out.println("数据库驱动程序注册成功!");
        String url ="jdbc:microsoft:sqlserver://192.168.100.248:1433;DatabaseName=master";
        String user = "sa";
        String password = "hqmis";
        Connection conn = DriverManager.getConnection(url, user, password);
        System.out.println("数据库连接成功");
        }
        catch(Exception e)
        {
        e.printStackTrace();
            System.out.println(e);
        System.out.println("数据库连接失败");
        }
    
运行结果:数据库驱动程序注册成功!
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at Test.main(Test.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
数据库连接失败
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
这个代码我读本机的sql server,打了补丁,结果是数据库连接成功的。读另外一个同事机子上的sql server 2005 系统是windows 2000的版本。
请问各位大师,我如何能读成功这个没有打补丁的sql serve 2000呢。

解决方案 »

  1.   

    连接之前测试一下192.168.100.248:1433 端口是否有开放,sql server 2000必须打补丁才能开放远程端口. 我以前就遇到过这样的问题,打补丁后就可以了.
      

  2.   

    打了补丁我也知道可以。我就是想最好能够不动服务器。不打补丁,有没有其他办法呢。我同事用asp windows 2003的系统就可以远程访问。
    为什么java不可以。哪位大哥指点下更高级的连接数据库的代码。不需要对数据库太多的要求
      

  3.   

    第一服务器的1433端口确实没有打开。
    第二我同事有用asp,和他的机器连接成功。
    我在网上找信息,是不是ODBC连接数据库的时候不需要端口啊,
    try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    }catch(ClassNotFoundException e) { }
        Connection con= null;
        try {
            con = DriverManager.getConnection("jdbc:odbc:lucy");
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        Statement sql= null; //创建Statement对象
        try {
            sql = con.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        ResultSet rs= null;
        try {
            rs = sql.executeQuery("select * from test");
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        try {
            while(rs.next()) //输出被查询的情况
        {
        String dd=rs.getString(1).trim();
          System.out.println(dd);    }
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    里面没有用到端口。好象还需要配置数据源。
    我想问大家,不通过端口可以连接数据库吗,代码代码。