关于javabean读取sqlserver存储过程的返回值的问题。

mx1029 2003-10-23 04:39:08
为什么返回的值有时候可以正确的返回值,有时却没有返回的结果。
大概代码如下:
if(iRet == 0){
flag = "完成!是否关闭添加窗口?";
}
else if(iRet == 1){
flag = "数据库连接错误!";
}
else if(iRet == 2){
flag = "已经存在,不能再次添加!";
}
前两个条件都能返回正确的结果,可是最后一个就不行了。望高手相助。。。
...全文
126 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yugona 2003-10-24
  • 打赏
  • 举报
回复
select @Row1=0
select @TempDeptNo =DeptNo from Bas_DeptCode where DeptName=@S_DeptName
if @S_PrivilageType='SF'
begin
if (@S_NodeNo='7')or(@S_NodeNo='8')or(@S_NodeNo='9')or(@S_NodeNo='10')or(@S_NodeNo='13')
begin
select @Row1=Count(*) from Sf_Privilege where (SfNodeNo=@S_NodeNo)and(DeptNo=@TempDeptNo)
if @Row1>0
begin
select iRet=2 -----------------------select @iRet=2 ????
return
end
end
mx1029 2003-10-24
  • 打赏
  • 举报
回复
select @Row1=0
select @TempDeptNo =DeptNo from Bas_DeptCode where DeptName=@S_DeptName
if @S_PrivilageType='SF'
begin
if (@S_NodeNo='7')or(@S_NodeNo='8')or(@S_NodeNo='9')or(@S_NodeNo='10')or(@S_NodeNo='13')
begin
select @Row1=Count(*) from Sf_Privilege where (SfNodeNo=@S_NodeNo)and(DeptNo=@TempDeptNo)
if @Row1>0
begin
select iRet=2
return
end
end
noratong 2003-10-24
  • 打赏
  • 举报
回复
最好把你调用存储过程的代码也贴出来!
mx1029 2003-10-24
  • 打赏
  • 举报
回复
UP!!!!
mx1029 2003-10-24
  • 打赏
  • 举报
回复
强烈感谢 rainshow。:)
我太粗心了。。。
马上送分。
mx1029 2003-10-23
  • 打赏
  • 举报
回复
望高手指点啊。。。
mx1029 2003-10-23
  • 打赏
  • 举报
回复
我是在javabean里加的打印System.out.println(iRet);
前两个都可以打印出正确的值即0和1,可是到第3个条件的时候就打印出错误的值了,
这似乎很明显是存储过程的问题。可是在sqlserver里确确实实是返回的2啊。。。。。救命啊。。。。。
yugona 2003-10-23
  • 打赏
  • 举报
回复
那你在那个判断前面有打印出那个值看到是2吗?
out.print(iRet)看看是多少!
caina3 2003-10-23
  • 打赏
  • 举报
回复
语法没有错误,
是否传出的值类型不匹配,从而要做类型转换?
mx1029 2003-10-23
  • 打赏
  • 举报
回复
可是我在sqlserver里手动输入要求的值返回的iRet值确实是2啊。。。。
这个问题我怎么也想不通啊。。。。
yugona 2003-10-23
  • 打赏
  • 举报
回复
语法没错啊,那就是没有传出值2
mx1029 2003-10-23
  • 打赏
  • 举报
回复
iRet为存储过程传出的参数。
up!!!

81,094

社区成员

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

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