ADOStoredProc调用存储过程后,如何获得存储过程Return的值MS-SQL2000:
CREATE PROCEDURE [dotest]
@userID VARCHAR(10)
AS
----中间是处理过程,会有不同的RETURN x
RETURN 3
GODELPHI6:
ADOStoredProc1.ProcedureName:='dotest';
ADOStoredProc1.Parameters.CreateParameter('@ID',ftString,pdInput,10,uId);
//ADOStoredProc1.Parameters.CreateParameter('@Result',ftSmallint,pdReturnValue,10,0); //即使声明成pdReturnValue也不行,提示参数太多
ADOStoredProc1.ExecProc;
CREATE PROCEDURE [dotest]
@userID VARCHAR(10)
AS
----中间是处理过程,会有不同的RETURN x
RETURN 3
GODELPHI6:
ADOStoredProc1.ProcedureName:='dotest';
ADOStoredProc1.Parameters.CreateParameter('@ID',ftString,pdInput,10,uId);
//ADOStoredProc1.Parameters.CreateParameter('@Result',ftSmallint,pdReturnValue,10,0); //即使声明成pdReturnValue也不行,提示参数太多
ADOStoredProc1.ExecProc;
Parameters.refresh;执行这句后,会自动获取存储过程的入口参数,同时在[0]生成@RETURN_VALUE这个参数名用来保存返回的参数。ADOStoredProc1.ProcedureName:='dotest';
ADOStoredProc1.Parameters.refresh;
ADOStoredProc1.Parameters[1].value:='test' //[0]是自动增加的变量名,自己的从[1]开始
ADOStoredProc1.ExecProc;
例如:
create procedure [dotest]
@userID VARCHAR(10),
@i_out int output //此乃存储输出值
....
declare @i int
declare @userID varchar(10)execute @i = dotest @UserID select @i
declare @i int
declare @userID varchar(10)execute @i = dotest @UserID outputselect @i