存储过程的嵌套调用另一个存储过程,这样写不对吗?(100分)

  • 主题发起人 芭芭拉
  • 开始时间

芭芭拉

Unregistered / Unconfirmed
GUEST, unregistred user!
帮我看一下,这个哪里不对,
在这个过程中嵌套调用另一个存储过程,
js_no是另一个存储过程名字,有一个输入值(int)的一个返回值(varchar)。
CREATE PROCEDURE [test]
@lsno int ,
@k_no varchar(10),
@zdno int output
AS
select @lsno=in1 from demo
set @lsno=@lsno+1
execute js_no @lsno return @k_no
set @zdno=convert(int,@k_no)
GO
在中调用
var ls1:integer;
begin
with SP_jszddo
begin
ExecProc;
//出错提示“js_no 需要参数 @resu,但未提供该参数”@resu,是js_no过程的返回值。
ls1:=Parameters.ParamByName('@zdno').Value;
showmessage(inttostr(ls1));
end;
 
execute js_no @lsno return @k_no
应改为:
execute js_no @lsno
返回值不能用return @k_no取得

 
那如何做出返回值?
 
这样写怎么得出返回值?
 
可能要改改:
CREATE PROCEDURE [test]
@zdno int output
AS
declare @lsno int ,
declare @k_no varchar(10),
select @lsno=in1 from demo
set @lsno=@lsno+1
execute js_no @lsno,@k_no output
set @zdno=convert(int,@k_no)
 
多人接受答案了。
 
顶部