有这个数据库和表呀
我用的是sybase

解决方案 »

  1.   

    不好意思,sybase我没有用过,但我看了你的程序,可能是ResultSet错了吧,你在while (rs.next())一次之后并没有把指针移到第一行之前又来了个while (rs.next()),并且在后面的那个循环中用了rs.getMetaData,你看看是不是这里错了呢。
      

  2.   

    我已经把前一个while语句注释掉了
      

  3.   

    //DatabaseMetaData conMD = connection.getMetaData();
    检查这里,是DatabaseMetaData 吗?
      

  4.   

    是说你的数据库缺少几张表而不支持JDBC。你从Sybase网站上down下来的驱动程序包解开后,里面有个目录sp,目录下有几个.sql文件,
    把那几个文件放到sql advantage中执行一下即可。Sybase的产品好像比较特别,如果需要支持PowerBuilder连接数据库也要执行几个.sql文件,
    在master库里创建一些表。要支持JDBC也要来这一套。
      

  5.   

    直接运行sql_asa.sql,sql_server.sql就行了????
    没有参数???
      

  6.   

    还有一个sql_server12.sql,不要任何参数。
    我用的jConnect5.2,jConnect5.5都没问题。
      

  7.   

    你用的是sybase 12吧
    我用的是linux下的sybase11。9
    我看了一些资料
    sql_server12.sql是对sybase ase12使用的 
      

  8.   

    那应该没有问题了
    可是我运行后还是报错:
    Driver URL:     jdbc:sybase:Tds:192.168.100.223:5000/javatest
    Driver Name:    jConnect (TM) for JDBC (TM)
    Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug  9 12:45:12 2001
    //---以上运行正常
    com.sybase.jdbc2.jdbc.SybSQLException: test not found. Specify owner.objectname or use sp_help to check whether the object exists (sp_help may produce lots of output).        at com.sybase.jdbc2.tds.Tds.processEed(Tds.java:2444)
            at com.sybase.jdbc2.tds.Tds.nextResult(Tds.java:1873)
            at com.sybase.jdbc2.jdbc.ResultGetter.nextResult(ResultGetter.java:69)
            at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:201)
            at com.sybase.jdbc2.jdbc.SybStatement.nextResult(SybStatement.java:182)
            at com.sybase.jdbc2.jdbc.SybStatement.queryLoop(SybStatement.java:1508)
            at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1493)
            at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:399)
            at testDriver.main(testDriver.java:49)
      

  9.   

    高手呢!!!!!!!!!!
    又没了?!!!!!!!!!!!!!!!附源程序:
    import com.sybase.jdbcx.*;
    import java.sql.*; // JDBC packageclass testDriver{public static void main(String args[])
    {
    //String url = "jdbc:inetdae:localhost:1433";
    //use your hostname and port number here
    String url = "jdbc:sybase:Tds:192.168.100.223:5000/javatest";
    String login = "sa"; // use your login here
    String password = "111111"; // use your password here
    // String login = args[0];
    // String password = args[1];
    try {
    // DriverManager.setLogStream(System.out); // to create more info
    // DriverManager.getLogWriter();
    // DriverManager.getLogStream();
    // for technical support//============ the method of loading the jdbc driver is listed ===============//
    //load the class with the driver
    Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); // JDK,Netscape
    //or
    //Class.forName("com.inet.tds.TdsDriver").newInstance(); // JDK,Netscape,IE
    //or
    //new com.inet.tds.TdsDriver(); // JDK,Netscape,IE//set a timeout for login and query
    DriverManager.setLoginTimeout(10);//open a connection to the database
    Connection connection = DriverManager.getConnection(url,login,password);//to get the driver version
    DatabaseMetaData conMD = connection.getMetaData();
    System.out.println("Driver URL:\t" + conMD.getURL());
    System.out.println("Driver Name:\t" + conMD.getDriverName());
    System.out.println("Driver Version:\t" + conMD.getDriverVersion());//select a database
    //connection.setCatalog("javatest");//create a statement
    Statement st = connection.createStatement();//execute a query
    //ResultSet rs1 = st.executeQuery("USE javatest");
    ResultSet rs = st.executeQuery("SELECT * FROM test");// read the data and put it to the console
    //===================================================//
    /*
    while (rs.next()){
    for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){
    if(rs.getObject(j) instanceof String )
    {
    String tmp = (String)rs.getObject(j);
    System.out.print(convert(tmp) + " ");
    }
    else
    System.out.print(rs.getObject(j) + " ");
    }
    System.out.println();
    }
    */while (rs.next()){
    for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){
    System.out.print(rs.getObject(j) + " ");
    }
    System.out.println();
    }//====================================================//
    st.close();
    connection.close();} catch(Exception e) {
    e.printStackTrace();
    }
    }//===========================================================//
    //Convert Unicode to GB if the Object is a String.
    public static String convert(String str){
    try{
    if (str != null) {
    byte[] b = str.getBytes ("8859_1");
    str = new String (b);
    }
    }catch(java.io.UnsupportedEncodingException e)
    {
    return null;
    }
    return str;
    }
    //==========================================================//
    }
      

  10.   

    我想这不是程序的问题
    这还是jdbc没有配置好
      

  11.   

    出错信息是说你的javatest库里没有test这张表啊!
      

  12.   

    Driver URL:    jdbc:sybase:Tds:192.168.100.223:5000/javatest
    Driver Name:    jConnect (TM) for JDBC (TM)
    Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug  9 12:45:12 2001
    //---以上运行正常上面几行能输出来,表示你已经连上了数据库,下面再出错要么是你的程序问题,要么
    是数据库的数据结构设计问题了。
      

  13.   

    现在又报新的错误:
    Driver URL:     jdbc:sybase:Tds:192.168.100.223:5000/javatest
    Driver Name:    jConnect (TM) for JDBC (TM)
    Driver Version: jConnect (TM) for JDBC(TM)/5.2(Build 21136)/P/EBF9747/JDK12/Thu Aug  9 12:45:12 2001
    java.sql.SQLException: JZ006: Caught IOException: java.io.IOException: JZ0I6: An error occured converting UNICODE to the charset used by the server.  Error message: java.io.CharConversionException: java.io.UnsupportedEncodingException: UnsupportedCharset
            at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:467)
            at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:2821)
            at com.sybase.jdbc2.tds.Tds.language(Tds.java:638)
            at com.sybase.jdbc2.jdbc.SybStatement.sendQuery(SybStatement.java:1422)
            at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:1492)
            at com.sybase.jdbc2.jdbc.SybStatement.executeQuery(SybStatement.java:399)
            at testDriver.main(testDriver.java:49)