pb 调用两次存储 第二次fetch 返回值 sqlerrtext为 cursor is not open

intli_return,li_return2stringls_return,ls_return2stringls_thishqbrch_new,ls_thishqbrc... int li_return ,li_return2
string ls_return ,ls_return2
string ls_thishqbrch_new,ls_thishqbrch_old

ls_thishqbrch_new = as_cwhm_new
if left(as_cwhm_new,1) = '+' then
ls_thishqbrch_new = Replace(as_cwhm_new,1,1,'%2B')
end if
DECLARE his_changebed PROCEDURE FOR Sp_ChangeBed
@as_inid = :ll_zyh_old,
@as_newbedno = :ls_thishqbrch_new,
@an_return = :li_return OUTPUT,
@as_return = :ls_return OUTPUT;
EXECUTE his_changebed;
IF SQLCA.sqlcode = -1 Then
//失败
MessageBox("提示信息","换床调用Sp_ChangeBed存储过程失败:"+sqlca.SQLErrText)
GOTO Process_Error
End IF
fetch his_changebed into :li_return ,:ls_return;
IF li_return <> 1 Then
//失败
MessageBox("提示信息","换床调用his_changebed存储过程失败:"+ls_return )
End IF

Close his_changebed;
IF li_return<>1 THEN GOTO Process_Error

if ll_zyh_New <> 0 then

ls_thishqbrch_old = as_cwhm_Old
if left(as_cwhm_Old,1) = '+' then
ls_thishqbrch_old = Replace(as_cwhm_Old,1,1,'%2B')
end if
DECLARE his_changebed2 PROCEDURE FOR Sp_ChangeBed
@as_inid = :ll_zyh_new,
@as_newbedno = :ls_thishqbrch_old,
@an_return = :li_return2,
@as_return = :ls_return2;
EXECUTE his_changebed2;
IF SQLCA.sqlcode = -1 Then
//失败
MessageBox("提示信息","换床调用Sp_ChangeBed2存储过程失败:"+sqlca.SQLErrText)
GOTO Process_Error
End IF
fetch his_changebed2 into :li_return2 ,:ls_return2;
IF SQLCA.sqlcode = -1 Then
//失败
MessageBox("提示信息","换床调用Sp_ChangeBed存储过程失败:"+sqlca.SQLErrText)
MessageBox("提示信息","换床调用his_changebed2存储过程失败:"+ls_return2 )
End IF

Close his_changebed2;
IF li_return2<>1 THEN GOTO Process_Error
end if

第一次fetch 的sqlca.sqlcode = 0 第二次的返回值是 -1 两次调用的写法错了吗
展开
 我来答
a470198949
2017-06-07 · TA获得超过359个赞
知道小有建树答主
回答量:592
采纳率:59%
帮助的人:203万
展开全部
都提示给你了,游标没打开;如果不知道是什么意思的话,就百度翻译一下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式