PB调用存储过程问题
FOR ll_i = 1 TO dw_dengjinfo.RowCount()
.
.
.
DECLARE Lis_td PROCEDURE FOR @returnValue=sp_lisapp
@applyno = :ls_checkbh,
@pattype = '4',
@ifjz = 0 ,
@patno = :ls_checkbh,
@patname = :ls_xm,
@patsex = :ls_xb,
@patbrith= :ldt_birthday,
@bedno = '',
@docna = '',
@depno = '',
@dianose = '',
@testname= '',
@item = :ls_item,
@mode = 0,
@applyid = :ls_retsqh OUTPUT using Tran_Inter;
EXECUTE Lis_td;
FETCH Lis_td Into :ll_ret,:ls_retsqh;
IF Tran_Inter.SqlCode<>0 THEN
MessageBox(gs_messagetitle,Tran_Inter.SQLErrText + '~r~n' + ls_err)
ELSE
END IF
CLOSE Lis_td ;
.
.
.
NEXT
问题:我在循环体里面调用存储过程,当第循环一次执行存储过程时可以成功,但第二次以后就有错误提示了,错误信息为:cursor is not open,但第二次的存储过程执行后台已经成功
如何解决!!!
[解决办法]
你的游标Lis_td 没销毁
[解决办法]
哦,错了,我以为是SQL的游标,
改成这样试试
EXECUTE Lis_td;
IF Tran_Inter.SqlCode<>0 THEN
MessageBox(gs_messagetitle,Tran_Inter.SQLErrText + '~r~n' + ls_err)
//CLOSE Lis_td ;
//conntine;
ELSE
FETCH Lis_td Into :ll_ret,:ls_retsqh;
END IF
CLOSE Lis_td ;
[解决办法]
动态SQL
[解决办法]
CLOSE Lis_td ;
放在next後面。。。