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

YY_MM_DD 2009-08-08 02:05:54
给我看看啊...怎么和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;
}

...全文
242 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
YY_MM_DD 2009-08-08
  • 打赏
  • 举报
回复
就是不晓得才提问的....
我那样设置错了...到底要怎么设置?
一头头 2009-08-08
  • 打赏
  • 举报
回复
ResultSet有2中type 一个是可以滚动的scroll 还有一个就是只能往后的
查下API就知道了哇
一头头 2009-08-08
  • 打赏
  • 举报
回复
你的ResultSet的指针只能往后 不能往前
你需要重新搞一个ResultSet才可以、

问题在这里
rs = ((ResultSet) csmt.getObject(9));
YY_MM_DD 2009-08-08
  • 打赏
  • 举报
回复
对只转发结果集的无效操作:absolute
一头头 2009-08-08
  • 打赏
  • 举报
回复
报什么错误哇?
YY_MM_DD 2009-08-08
  • 打赏
  • 举报
回复
我认为不对!rs.absolute(startNum)没有这行几会返回false
一头头 2009-08-08
  • 打赏
  • 举报
回复
先要加的判断的哇

你要把指针移动到第startNum

首先要确保你数据库里有startNum这一项 你觉得对吗
YY_MM_DD 2009-08-08
  • 打赏
  • 举报
回复
if (!rs.absolute(startNum))
{
return result;
}
就是这里抱错误

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧