CallableStatement call = conn.prepareCall("存储过程",
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
为什么返回的结果集不能滚动呢?
谢谢专家高手啦 
分不多 
关键是学习和请教的心比较诚恳啊

解决方案 »

  1.   

    ResultSet.TYPE_SCROLL_SENSITIVE  //记录可跟新
    ResultSet.CONCUR_READ_ONLY       //只读状态
    是不是你其他地方代码写错了
      

  2.   

    ResultSet rs = (ResultSet) ((CallableStatement) stmt).getObject(i);
      

  3.   

    改下把:
    CallableStatement call = conn.prepareCall("存储过程", 
    ResultSet.TYPE_SCROLL_INSENSITIVE, //
    ResultSet.CONCUR_UPDATABLE); // 
      

  4.   

    1 CallableStatement cst = conn.prepareCall(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    cst.setString(1, t_name);
    cst.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
    cst.execute();
    rs = (ResultSet) cst.getObject(2);2 第一行换成:CallableStatement cst = conn.prepareCall(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);这两种返回的rs都不能滚动!
    手上没提ORACLE JDBC驱动源码,不知道它怎么实现这个方法的:
    CallableStatement prepareCall(String sql, int resultSetType, 
      int resultSetConcurrency) throws SQLException;要实现滚动,只能用:Statement 不能用prepareCall
    例:
    String sql="Select *  From user_tab_cols ";
    Statement cst=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
     rs=cst.executeQuery(sql);
     rs.absolute(1);
     System.out.println(rs.getString(1));
      

  5.   

    mysql貌似是支持滚动结果集的
    oracle好像不支持印象不是很强