EXECUTE 存储过程名; //执行存储过程
//执行存储过程错误处理
IF SQLCASQLCODE <0 THEN
MESSAGEBOX("错误","存储过程失败")
return -1
end if
//如果执行成功 获取结果
FETCH 存储过程名 INTO :返回值1,:返回值2,:返回值3,:返回值4,,:返回值N; //获取返回值
close 存储过程名; //关闭存储过程
你的参数就是ID,返回值就是NAME,只要存储过程写的没有问题,就可以执行成功declare login procedure for login
@uid=:ls_id
using sqlca ;
execute login;
if sqlcasqldbcode <> 0 then
rollback;
else
commit;
end if
close login;应该可以创建存储过程的。首先保证用户有创建存储过程的权限。PB这个东西我已经好多年没用了,我记得好像有一个excute语句来执行SQL命令。这样就可以执行create procudure了。你调用的存储过程需要的变量放在一个数组中了是吧,你的数组是怎麼存储变量的,比如:存储过程需要两个变量@year char(4),@month integer,这两个变量是怎麼存储在数组中的呢?比如是这样存储的吧 @year + @month ,这样的格式存储的数组
string ls_string,ls_year
integer li_month,li_persion
array a[]
FOR li_count = 1 to LowerBound(arrary) //数组名
ls_string = a[li_count]
li_persion = pos(ls_string,'+')
ls_year = mid(ls_string,1,li_persion - 1)
li_month =integer(mid(ls_string,li_persion + 1 )
DECLARE pc PROCEDURE FOR proc
@year = :ls_year,
@month = :li_month
USING sqlca;
EXECUTE pc ;
NEXT
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)