Delphi下调用有返回值的存储过程

StorPro:=TADOStoredProc.Create(nil);

然后定义存储过程的名字和输入参数:

StorPro.ProcedureName:=ProName;

StorPro.Parameters.clear;

StorPro.Close;

StorPro.Parameters.CreateParameter('as_gh', ftString, pdInput , 10, NULL);

StorPro.Parameters.CreateParameter('as_in', ftString, pdInput , 100, NULL);

StorPro.Parameters.CreateParameter('as_out', ftString, pdOutput , 255, NULL);

大家可能看到函数CreateParameter中的第3个参数,pdInput 就是用来定义此参数是输入参数函数输出参数。具体的参数函数是:存储过程参数名称、类型、输入输出参数类型、长度还有就是最后一个参数Delphi帮助中说是Value: OleVariant,不过我没有用过。一般我赋值为NULL。

上面的过程是定义这个存储过程的参数。在调用的时候自然需要给参数赋值。

赋值过程为(其中WorkID和DataID是事先定义好的两个变量):

StorPro.Parameters[0].value :=WorkID;

StorPro.Parameters[1].value :=DataID;

赋值完成后运行此存储过程:

StorPro.prepared:=true;

StorPro.ExecProc;

好了存储过程调用以后,我们希望得到这次存储过程返回的参数'as_out'的值。

str1:=StorPro.Parameters.parambyname('as_out').Value;