永发信息网

JDBC调用Sybase存储过程,结果集总是无法返回,该怎么处理

答案:1  悬赏:50  手机版
解决时间 2021-01-12 00:29
JDBC调用Sybase存储过程,结果集总是无法返回,该怎么处理
最佳答案
JDBC调用Sybase存储过程,结果集总是无法返回!
java代码部分如下:
String sproc = "{ call zhouxiaobotest2(?,?,?,?)} ";
CommonDAO dao = null;
try {
dao = new CommonDAO(jndi);
Connection connect = dao.getConn();

//得到总数
rowNum = PageDiv.getCount(countSql.toString(), dao);

//设置分页信息
pageBean.setPageInfo(rowNum, pageSize);

// 获取CallableStatement语句:
CallableStatement mStatement = connect.prepareCall(sproc,
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);

// 传入输入参数和注册输出参数
mStatement.setString(1,sql.toString());
mStatement.setInt(2, 10);
mStatement.setInt(3, 10);
mStatement.setInt(4, 5000);

// 执行存储过程
ResultSet rs = null;
mStatement.execute();
rs = mStatement.getResultSet();

catch (Exception ex) {
ex.printStackTrace();
logger.warn(sql.toString());
} finally {
dao.destroy();
dao = null;
sproc = null;
}

存储过程如下:
create procedure zhouxiaobotest @qry varchar(16384),@ipage int, @num int,@maxpages int
as

begin

declare @execsql varchar(16384)

set @execsql = " select USER_NAME from TBL_USER "

execute (@execsql)

end

create procedure zhouxiaobotest2 @qry varchar(16384),@ipage int, @num int,@maxpages int
as

begin

select USER_NAME from TBL_USER

end

现在我的问题是调用存储过程zhouxiaobotest,mStatement.execute()始终是false;而调用zhouxiaobotest2 mStatement.execute()就是true,能得到结果集。我想知道如何修改程序使我能够调用zhouxiaobotest取得结果集(之前调试程序运行没有抛出任何异常,而且控制台运行存储过程也都正确)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一跟5米的625的钢管有多重
(-1又二分之一)+(+1又四分之一)+(-2又二分之
黑艺麻怎么吃好
密室逃脱1的第14关怎么过答案详解
林正英有一部僵尸不怕阳光的:
台湾免税店缅甸翡翠挂坠比大陆便宜多少
深圳开往桂林北k952次火车餐厅在几号车厢?
孽畜 用英语怎么说 说出来特别狠的那种 或者
南阳装饰公司哪边划算?靠谱吗
读了《国旗班的战士》这篇短文,你的感受是什
1.42乘以1.60如何列竖式计算
1984年2月是什么星座
今天上午被狗咬了 打一针育苗 下午我家亲戚搬
最早怀孕多久可以做产前鉴定
碳晶取暖气不放加湿盒可以吗
推荐资讯
红烧黄凉粉的做法,红烧黄凉粉怎么做好吃,红
大家电脑什么系统的,学外语用哪款复读机软件
关于体育名人的事例与语录
电表走的快刚刚交300元半个月就负150度电怎么
毛鱼炒青椒怎么做
有人吃过“苦瓜瘦”吗
人生是一本书阅读答案
1-20,20个数,随机挑5个的所有组合中去掉三连
桂林有“去K书”吗?价格怎么样?环境怎么样
若∠α的余角为38°24′,则∠α=________°
已知m、x、y满足:(1)(x-5) 2 +|m|=0,(
我办了一张陕西信合卡,可是里面没钱,会不会
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?