用jdbc连接sqlserver,就是连不上,baidu/google过很多相关资料,也没有结果.
用jbuilder x编译通过,运行过程中驱动程序已经加载成功,但连接数据库总是失败.
192.168.0.23是我在局域网中的固定ip,sqlserver2000服务管理器正常运行,程序中要连接的数据库名就是sqlserver2000自带的pubs数据库.
我试过吧192.168.0.23换成过localhost和服务器名都不行,请求解答.此前用jdbc-odbc桥成功连接.
主要代码如下:
public class jdbctest{  Connection con;
  String url="jdbc:microsoft:sqlserver://192.168.0.23:1433;DatabaseName=pubs";
  String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";  public static void main(){
    try{  // load driver
      Class.forName(driver);
      System.out.println("Driver successfully loaded.");
    } catch(Exception e){
            System.out.println("driver load failed.");
    }
    try{  // connect database
      con = DriverManager.getConnection(url,"sa","cx");
      System.out.println("Database successfully connected.");
    }catch(Exception e){
      System.out.println("connect failed.");
    }  }//end main 
}

解决方案 »

  1.   

    驱动程序已经加载成功,那最有可能的就是登陆的用户名和密码错了,sql server 有两种登陆方式,要把它改成sql server 和windows 混合模式才可以用sa用户登陆.
      

  2.   

    sql server2000的SP3 的补丁,就可以的,还有就是三个JAR的文件要在CLASSPATH中
      

  3.   

    出什么异常啊?把Exception的trace打出来看看
      

  4.   

    登录方式和密码应该是没有问题的,我之前用jdbc-odbc桥就连接上了.
    我原来没有打sp3补丁,刚打上了,再试,也还是不行
    CLASSPATH是原来装jdk时设的,三个jar文件应该怎么加上?在catch中加上了e.printStackTrace(),输出如下
    D:\Develop\JbuilderX\jdk1.4\bin\javaw -classpath "C:\Documents and Settings\chenxu\jbproject\jdbcsqlserver\classes;E:\jdbcsqlserver\jdbcsqlserver\msbase.jar;E:\jdbcsqlserver\jdbcsqlserver\mssqlserver.jar;E:\jdbcsqlserver\jdbcsqlserver\msutil.jar;D:\Develop\JbuilderX\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;D:\Develop\JbuilderX\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;D:\Develop\JbuilderX\jdk1.4\jre\javaws\javaws.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\charsets.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\ext\dnsns.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\ext\ldapsec.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\ext\localedata.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\im\indicim.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\im\thaiim.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\jce.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\jsse.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\plugin.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\rt.jar;D:\Develop\JbuilderX\jdk1.4\jre\lib\sunrsasign.jar;D:\Develop\JbuilderX\jdk1.4\lib\dt.jar;D:\Develop\JbuilderX\jdk1.4\lib\htmlconverter.jar;D:\Develop\JbuilderX\jdk1.4\lib\tools.jar"  jdbcsqlserver 
    execute here
    Driver successfully loaded.
    java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Error establishing socket.
    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)connect failed.
    [Ljava.lang.StackTraceElement;@10ef90c
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:512)
    at java.sql.DriverManager.getConnection(DriverManager.java:193)
    at jdbcsqlserver.getConnect(jdbcsqlserver.java:27)
    at jdbcsqlserver.main(jdbcsqlserver.java:16)