日期:2014-05-18  浏览次数:20780 次

rs.getString(),游标状态无效问题
ResultSet   rs   =   stmt.executeQuery( "select   userid,min(batchid)   from   point     group   by   userid   ");

while   (rs.next())   {
System.out.println(rs.getString(1));
                  System.out.println(rs.getString(2));
}

运行后,在打印语句出错。
java.sql.SQLException:   [Microsoft][ODBC   Driver   Manager]   カーソルの状態が無効です。
at   sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at   sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at   sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3908)
at   sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5699)
at   sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:353)
at   test.Test.main(Test.java:33)


我使用的access数据库。当时用这条语句在plsql中,连接oracle数据库时使用,就正常。请大家帮帮忙,已经弄了一天了,还没想出来是为什么。


------解决方案--------------------
我个人的经验,仅供参考
用JDBC-ODBC连Access总会出现一些意想不到的Bug
比如,你CreateStatement的时候用了ResultSet.CONCUR_READ_ONLY,执行selet top 10就会有问题。所以CreateStatement的时候最好不要加参数

还可能有其它的原因。。。。具体不详
------解决方案--------------------
连接access与oracle 的代码不一样!!(个人意见)