java 调用存储过程无反应_java调用存储过程无法取得返回参数
环境:数据库sql server2005,jdk1.6 ,myeclipse,驱动jdts1.2.2
执行以下代码,报错:
String querySQL = "{?=call p_sys_manager_csReport(?,?,?,?,?)}";
cstmt = conn.prepareCall(querySQL);
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(2, modType);
cstmt.setInt(3, dptId);
cstmt.setInt(4, eplId);
cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
rs = cstmt.executeQuery();
if (rs != null) {
if (rs.next()) {
companyTotal = rs.getInt("companyTotal");
}
}
String temp = null;
temp = cstmt.getString(5);//此行报错
报错信息为:
java.sql.SQLException: Output parameters have not yet been processed. Call getMoreResults().
at net.sourceforge.jtds.jdbc.ParamInfo.getOutValue(ParamInfo.java:159)
at net.sourceforge.jtds.jdbc.JtdsCallableStatement.getOutputValue(JtdsCallableStatement.java:116)
at net.sourceforge.jtds.jdbc.JtdsCallableStatement.getString(JtdsCallableStatement.java:310)
报错信息说得很明白,就是输出结果参数未处理,必须调用getMoreResults()方法以判断是否还有结果集。
然后修改代码,问题解决:
String querySQL = "{?=call p_sys_manager_csReport(?,?,?,?,?)}";
cstmt = conn.prepareCall(querySQL);
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(2, modType);
cstmt.setInt(3, dptId);
cstmt.setInt(4, eplId);
cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
rs = cstmt.executeQuery();
if (rs != null) {
if(rs.next()) {
companyTotal = rs.getInt("companyTotal");
}
}
String temp = null;
/*
*记录集获取到后,把rs记录集循环取出后或者调用cstmt.getMoreResults()方法后,sqlserver才会处理output返回值
*/
if (!cstmt.getMoreResults()) {//此行判断是否还有更多的结果集,如果没有,接下来会处理output返回参数了
temp = cstmt.getString(5);//此行不再报错
}
其中改为以下代码也不报错:
if (rs != null) {
java 调用存储过程无反应_java调用存储过程无法取得返回参数相关推荐
- 存储过程+调用存储过程+无/带参的存储过程+in参数+out参数+int out参数+为参数设置默认值...
存储过程 1存储过程是一组为了完成特定功能的SQL语句集 2存储过程编译后存储在数据库中 3执行存储过程比执行存储过程封装的SQl语句集更有效率 4不能指定declare关键字 5: OUT 和 IN ...
- java调用python项目实战_Java调用Python
今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题.网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什 ...
- java百度天气接口解析_Java调用天气接口(百度天气)解析返回的JSON数据
简介:本文详细讲述了通过Java调用百度天气接口的方法,取得返回的JSON格式的数据,并且通过第三方包解析JSON格式的数据. 通过百度天气API调用网络编程接口接收返回的JSON格式的数据. 关于百 ...
- java调用支付接口实例_Java 调用支付宝接口
1.注册开发者中心应用 登录点击沙箱服务 https://open.alipay.com/platform/developerIndex.htm 2.创建沙箱应用获取APPID和支付宝网关地址(创 ...
- java 怎么页面授权访问_Java调用Linkedin接口API之:获取授权
配置领英应用 配置地址:https://www.linkedin.com/secure/developer?newapp= 强烈建议您使用 HTTPS 网址必须是绝对网址 (例如: "htt ...
- java 调用对象的方法_JAVA调用对象方法的执行过程
JAVA调用对象方法的执行过程: ①.编译器查看对象的声明类型和方法名.假设调用x.f(parameter), 且隐式参数x声明为C类型的对象,有可能在C对象中存在多个参数类型和参数个数不同的f的方 ...
- java可以使用python的库函数_java调用python方法总结
一.在java类中直接执行python语句 import org.python.util.PythonInterpreter; public class FirstJavaScript { publi ...
- 仿照java做一个脚本语言_java调用其它语言脚本(python、js)
1.背景 之前用开发过程一些功能如图像处理.相似度计算.水印等需要调用算法写的方法,但是算法一般都是用python语言进行开发.所以经常直接用java调用python脚本文件.在网上搜了很多方法也排了 ...
- java版微信朋友圈_java调用个人微信API接口发朋友圈,评论和删除朋友圈
java调用个人微信API接口发朋友圈,评论和删除朋友圈 /** * 发送朋友圈任务 * @author wechatno:tangjinjinwx * @param ctx * @param vo ...
- java根据打印模板打印_java调用本地打印机,绘制打印模板,小票模板
jar资源 绘制打印模板 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt. ...
最新文章
- graphql_普通英语GraphQL指南
- UML Distilled 3rd 学习笔记
- 网站SEO更新时选择适当的时间点有什么好处?
- 人脸识别的灵魂拷问:变胖了怎么办?
- python anaconda下载包_【Python开发】anaconda3 安装python包
- C语言 | 编写一个使用指针的c函数,交换数组a和数组b中的对应元素
- PHP判断上传文件类型
- 光端机的分类有哪些?
- Quick Emacs
- 移动端点击输入框,弹出键盘,底部被顶起问题(vue)
- python中数字的排序
- native字体尺寸自适应 react_React Native之图片/宽高/字体平台适配
- 不到一个月独自一人开发斗地主游戏(h5 + 安卓 + 苹果)
- 评价指标 | ROC曲线和AUC面积理解
- python表达式_Python的表达式写法
- 邮件多面手!Foxmail 6.5正式版新体验
- 将文字定位到浮动图片上|CSS
- HDS不玩了,高端存储还能玩多久?
- BloomFilter--理解总结
- 小曹谈技术之中文拼音输入法