调用存储过程返回多结果集的问题

yaozi 2003-01-22 04:55:28
我执行sp_helpdb **dbname,得到了一个多结果集(此为2个结果集),
while(rs.next()){
....
}
上面这样取完第一个结果集里的东东,
然后怎样取第二个结果吉利的东东?
thanks....
...全文
124 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
relive 2003-01-23
  • 打赏
  • 举报
回复
不说了。。。
你这么用会有问题的。
555
yaozi 2003-01-23
  • 打赏
  • 举报
回复
这样就ok了
CallableStatement cstmt = conn.prepareCall(sql);
cstmt.execute();
while( true ){
rs = cstmt.getResultSet();
while(rs.next()){
System.out.print(rs.getString(1)+ " ");
System.out.println(rs.getString(2));
}
if(!cstmt.getMoreResults() && cstmt.getUpdateCount()==-1){
break;
}
}

relive 2003-01-23
  • 打赏
  • 举报
回复
不是不用ResultSet,是让你另外new一个,不要用同一个,难道是我说的不明白??
yaozi 2003-01-23
  • 打赏
  • 举报
回复
当然是多结果集了,不用ResultSet,用什么?
relive 2003-01-23
  • 打赏
  • 举报
回复
没。。。
yaozi 2003-01-23
  • 打赏
  • 举报
回复
嗯,这个啊。我现在是
if(i==0){//first resultSet
//do sth.
}else{//second resultSet
//do sth.
}
这样来解决的,这样也可以吧?还有别的什么问题吗?
relive 2003-01-23
  • 打赏
  • 举报
回复
恩,如果你两个结果集的字段类型或元素个数不同,你就会知道出什么问题了,你刚说的那个还是小问题呢。。。
yaozi 2003-01-23
  • 打赏
  • 举报
回复
嗯?有什么问题,我是碰到一个问题,第二个结果集不能用rs.getString("name")来取,只能用rs.getString(1)来取。还有别的问题吗?说吧... :)
xhzhang6 2003-01-22
  • 打赏
  • 举报
回复
我对这个问题也纳闷了好久
我想还是只返回一个记录集算了
relive 2003-01-22
  • 打赏
  • 举报
回复
什么意思??

如果你的结果集里有两条数据,那一个rs.next()就是一条数据,用rs.getObjest(i)取其中第i个元素。

如果是两个结果集,最好不要用一个ResultSet

62,623

社区成员

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

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