以前我在别人机器上成功配置过,但是自己机器不行,不晓得为什么。
按照别人推荐的配置过程如下:一,你确定你安装的jdbc是否完全版,因为有个单机版只能连接本机上的sql,单机版约2m,完全版约6.5m 
二、安装好jdbc后,假如目录在C:Program FilesMicrosoft SQL Server 2000 JDBC,打开Jbuilder,选择Tools-->Configure Libraries,然后在左边的列表框下选择New,填入:Name:sql,Location:User Home,然后点击Add,加入目录C:Program FilesMicrosoft SQL Server 2000 JDBClib,确定 
三、Project-->Prject Properties-->Paths-->Required Libraries-->Add 
加入刚才添加的User Home/sql确定 
四、Tools-->Enterprise Setup-->Database Drivers-->Add,加入User Home/sql,添加之后在列表框中显示的是sql.config,确定,重新启动JBuilder 
五、Tools-->Database Pilot-->View-->Options-->Drivers-->Add 
填入 
Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver 
Simple URL:microsoft:sqlserver://localhost:1433;DatabaseName=mybase 
确定之后,Tools-->Database Pilot-->New的Driver里选择 
com.microsoft.jdbc.sqlserver.SQLServerDriver 
在URL里填入: 
microsoft:sqlserver://localhost:1433;DatabaseName=数据库名,确定! 
双击或点击+号输入sql数据库的用户名和密码,就完成了JB与sql的连接! 问题是:我的驱动大小是2354k,但即使是单机版也连接不起!
错误提示是:socket连接出错!!
我又去看了一下我的端口,默认的是1433,也没有错!
                        而且,按照网上高手们的建议,我也给sqlserver打了sp3的补丁了啊!怎么办?高手请指教!!由于网络速度慢,您如果又什么好的配置建议,除了回复帖子外,可不可以把建议发送到谢谢!

解决方案 »

  1.   

    还有忘了描述:sqlserver默认的tcp/ip连接我也没有禁
                   
                   采用的是sqlserver和windows混合验证模式。               就是我每次登陆都要输入用户名:sa和密码才能进去的那种!
      

  2.   

    试试这样写
    package com.diyucity.suchas;
    import com.microsoft.jdbc.sqlserver.SQLServerDriver;
    import java.sql.*;public class UserRegist1 {
      private Connection con;
      //获得数据库连接
      public UserRegist1(){
        String CLASSFORNAME = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        String SERVANDDB = "jdbc:microsoft:sqlserver://127.0.0.1:1433";
        String USER = "cctvuser";
        String PWD = "cctvpwd";
        try{
          Class.forName(CLASSFORNAME);
          con = DriverManager.getConnection(SERVANDDB,USER,PWD);
          con.setCatalog("cctv");
          System.out.println("数据库已经成功连接......");
        }
        catch(Exception e){
          e.printStackTrace();
        }
      }
     public static void main(String[] args){    UserRegist1 regist = new UserRegist1();  }
    }
      

  3.   

    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Test","sa","");这样写对么?
    URL里面有没有  DatabaseName=mybase 这个字段哦?还有如果有,后面要打分号不?相关代码如下:
     Connection  con=null;
            Statement sm=null;
            ResultSet rs=null;
           
            try {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            } catch (java.lang.ClassNotFoundException e1) {
                System.out.print("没有找到Class");
                e1.printStackTrace();
            }        try{
                con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Test","sa","211");
                sm=con.createStatement();
                rs=sm.executeQuery("select MenuId from Rmenu");
                while(rs.next())
                {
                    System.out.print(rs.getString("MenuId"));
                    this.jTextField1.setText(rs.getString("MenuId"));
                }
            }
            catch(SQLException e2){
                e2.printStackTrace();
            }错误是建立socket出错:如下
    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:512) at java.sql.DriverManager.getConnection(DriverManager.java:171) at test.Frame1.jButton1_actionPerformed(Frame1.java:75) at test.Frame1_jButton1_actionAdapter.actionPerformed(Frame1.java:110) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)而且:我在tool得 JDBC pilot里面也是这个错误啊!谢谢
      

  4.   

    吓死我了,大惊失色!!我用相关工具查询,发现我的1433端口没有开!(服务器正在运行)但是,用企业管理器能进去,进去发现却是开放了1433端口!而且我用jdbc.odbc连接它的时候,一切都正常!我快崩溃了!怎么回事??(不喜欢用odbc,才会有这么麻烦啊,)谢谢
      

  5.   

    有没有搞错?
    Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver 
    Simple URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mybase
      

  6.   

    有没有搞错?
    Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver 
    Simple URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mybaseRe:
    你的意思是说:这样写是错误的? 还是要我确认我copy出来的时候没有copy错?各位师兄师姐们多多指教。5点以后没有解决掉这个问题,我就只有马上用jdbc.odbc连接sqlserver了!谢谢!