给我看看啊...怎么和preparestatement一样的设置,这里怎么不行?
sb.append("{call ")
              .append(ARProfile.PKG_RPT)
              .append(".get_daily_sale_payment(?,?,?,?,?,?,?,?,?,?)}");
            
            csmt = conn.prepareCall(sb.toString(),ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            csmt.setTimestamp(1,comValue.getBeginDate());
            csmt.setTimestamp(2,comValue.getEndDate());
            csmt.setString(3,deptId);
            csmt.setString(4,operId);
            csmt.setString(5, comValue.getReportType());
            csmt.registerOutParameter(6,Types.VARCHAR);
            csmt.registerOutParameter(7,Types.VARCHAR);
            csmt.registerOutParameter(8,Types.VARCHAR);
            csmt.registerOutParameter(9,OracleTypes.CURSOR);
            csmt.registerOutParameter(10,OracleTypes.NUMERIC);            csmt.execute();
            
            if (ARProfile.SUCCESS != csmt.getLong(6))
            {
                log.debug(csmt.getString(7));
                log.debug(csmt.getString(8));
                throw new ARException(ARErrMsg.AR_GET_RPT_LIST_ERR);
            }
            
            //modify by w60007776 for porting
            rs = ((ResultSet) csmt.getObject(9));
            count = (BigDecimal) csmt.getObject(10);
            
            startNum = startNum <=0 ? 1 : startNum; 
            if (!rs.absolute(startNum))
            {
                return result;
            }

解决方案 »

  1.   

     if (!rs.absolute(startNum))
                {
                    return result;
                }
    就是这里抱错误
      

  2.   

    先要加的判断的哇 你要把指针移动到第startNum首先要确保你数据库里有startNum这一项  你觉得对吗
      

  3.   

    我认为不对!rs.absolute(startNum)没有这行几会返回false
      

  4.   

    对只转发结果集的无效操作:absolute
      

  5.   

    你的ResultSet的指针只能往后 不能往前
    你需要重新搞一个ResultSet才可以、问题在这里
    rs = ((ResultSet) csmt.getObject(9));
      

  6.   

    ResultSet有2中type  一个是可以滚动的scroll 还有一个就是只能往后的
    查下API就知道了哇