连远程的报的什么错??
改用sqlserver的jdbc驱动来连吧,别用odbc桥了,速度慢

解决方案 »

  1.   

    //程序如下,test是ODBC中配置的数据源
    import java.sql.*;
    public class jdbc{
      public static void main(String args[]) throws SQLException{
        ResultSet rs = null;
        PreparedStatement ps = null;
        String url = "jdbc:odbc:test";
        Connection con;
        Statement stmt;
        try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }
        catch(java.lang.ClassNotFoundException e) {
          System.err.print("ClassNotFoundException: ");
          System.err.println(e.getMessage());
        }
        con = DriverManager.getConnection(url,"sa","123456");
        con.setAutoCommit(false);
        stmt = con.createStatement();
        rs = stmt.executeQuery("select * from testtable");
        System.out.println("Table before insertion:");
        while (rs.next()){
          //String number = rs.getString("Number");
          String name = rs.getString("Name");
          int age = rs.getInt("Age");
          System.out.println( name + "   " + age);
        }
       
        stmt.addBatch("INSERT INTO testtable " +"VALUES('李天梅',23)");
        int [] updateCounts = stmt.executeBatch();
        con.commit();
        con.setAutoCommit(true);
        rs = stmt.executeQuery("SELECT * FROM testtable");
        System.out.println("Table  after insertion:");
        while (rs.next()){
          //String number = rs.getString("Number");
          String name = rs.getString("Name");
          int age = rs.getInt("Age");
          System.out.println( name + "   " + age);
        }
        rs.close();
        stmt.close();
        con.close();
      }}谢谢,今天又检查了一遍,远程已经能连了,是因为数据库权限的问题
    速度是很慢
    请教一下,怎么用sqlserver的jdbc驱动来连?能给段例程或网址吗?
    再次感谢!
      

  2.   

    我倒~~麻烦下次提比较基础的问题前先搜索一下以往的记录
    给你贴个地址吧,你自己去看
    http://www.csdn.net/develop/Read_Article.asp?Id=21548连远程的机子的sqlserver,只需要改下面这一句:
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=haiguan"; 
    把localhost改成远程机器的ip或者机器名就可以了
      

  3.   

    import java.sql.Connection; 
    import java.sql.DriverManager; 
    public class Jdbc{ 
    public static void main(String[] args){ 
    try{ 
    //Class d=Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");  //(1)
    Class d=Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //(2)System.out.println("Congratulations!loaded"+d); }catch(ClassNotFoundException ex){ 
    System.out.println("can't load driver: \n"+ex); 



    上面这段程序,能成功运行,但如果我改用(1),把(2)注释掉则显示can't load driver
    请问是什么原因?是不是要安装什么东西?
      

  4.   

    谢谢你了!
    我改用
    String url="jdbc:microsoft:sqlserver://61.xx.xx.xx:1433;DatabaseName=test"; 后出现如下错误:
    Exception in thread "main" java.sql.SQLException: No suitable driver
            at java.sql.DriverManager.getConnection(DriverManager.java:532)
            at java.sql.DriverManager.getConnection(DriverManager.java:172)
            at jdbc.main(jdbc.java:22)
    Press any key to continue...
    是没有驱动吧?
      

  5.   

    SQLServer2000 JDBC驱动我已经安装了,classpath也已指定了那3个jar文件
    但错误依旧
    麻烦您能再指点一下
      

  6.   

    classpath里最好不要含空格
    把那三个jar拷贝到jdk的lib目录下重新指定一次
      

  7.   

    //测试JDBC连接MS Sql Server 2000
    // jdbc1.java
    import java.sql.*;
    public class jdbc1{
      public static void main(String args[]) throws SQLException{
        ResultSet rs = null;
        PreparedStatement ps = null;
        //方法(1)
        String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"; 
        String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        //
        //方法(2)
        //String driverName="sun.jdbc.odbc.JdbcOdbcDriver";
        //String url = "jdbc:odbc:test";
        //
        Connection con;
        Statement stmt;
        try {
       Class.forName(driverName);//.newInstance();
        }
        catch(java.lang.ClassNotFoundException e) {
          System.err.println(e.getMessage());
        }
        con = DriverManager.getConnection(url,"sa","zbroot"); 
        con.setAutoCommit(false);
        stmt = con.createStatement();
        rs = stmt.executeQuery("select * from testtable");
        System.out.println("Table before insertion:");
        while (rs.next()){
          String name = rs.getString("Name");
          int age = rs.getInt("Age");
          System.out.println( name + "   " + age);
        }
       
        stmt.addBatch("INSERT INTO testtable " +"VALUES('李天梅',23)");
        int [] updateCounts = stmt.executeBatch();
        con.commit();
        con.setAutoCommit(true);
        rs = stmt.executeQuery("SELECT * FROM testtable");
        System.out.println("Table  after insertion:");
        while (rs.next()){
          String name = rs.getString("Name");
          int age = rs.getInt("Age");
          System.out.println( name + "   " + age);
        }
        rs.close();
        stmt.close();
        con.close();
      }}真的十分感谢,现在已经解决了,程序如上
    无论用方法1还是方法2都能正确执行
    只不过我对这些语句还是不知道什么意思,还得看书去