java用调用sqlServer存储过程 com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集.

USE[gdebp56_hzrl_dev]GO/******Object:StoredProcedure[dbo].[p_basecheck]ScriptDate:07/... USE [gdebp56_hzrl_dev]
GO
/****** Object: StoredProcedure [dbo].[p_basecheck] Script Date: 07/23/2014 18:52:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[p_basecheck](@dm varchar(30),@mc varchar(200),@bz varchar(200),@RET INT OUT)
as
SET NOCOUNT ON
begin
SET NOCOUNT ON
set @RET=1000

end
上面是sqlServer的存储过程
这里是java HibernateTemplate 用调用 存储过程
public int verifyPm(){
String procdure ="{call p_basecheck(?,?,?,?)}";
CallableStatement cs = null;
try {
cs = getHibernateTemplate().getSessionFactory().openSession().connection().prepareCall(procdure);
} catch (HibernateException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
try {
cs.setString(1, "1" );
cs.setString(2, "2" );
cs.setString(3, "3" );
cs.registerOutParameter(4, Type.INT);

} catch (SQLException e) {
e.printStackTrace();
}
try {
ResultSet rs1 = cs.executeQuery();
if(cs.execute()){
ResultSet rs = cs.executeQuery();
while (rs.next()) {
rs.getInt("RET");
}
}
} catch (SQLException e) {
e.printStackTrace();
}

return null;

}
展开
 我来答
bfmabc123
2014-07-24 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:70
采纳率:0%
帮助的人:76万
展开全部
修改下proc
最后那个output的不要
ALTER proc [dbo].[p_basecheck](@dm varchar(30),@mc varchar(200),@bz varchar(200))
as
begin
DECLARE @RET INT
set @RET=1000
SELECT @RET
end

这样就有返回值了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式