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

简介:
今天在BLOG中瞎逛的时候看见“ 雨寒 ”写的一篇关于Delphi中如何调用存储过程的文章。写的很详细。崇拜之余就找起了他文章中的毛病(同行相轻啊,鄙视自己一下)。发现他的文章中没有提到对于具有返回值的存储过程的调用方法。觉得应该写上,于是马上动手。
对于存储过程的调用使用的控件正如“雨寒”所说的那样使用TADOStoredProc控件。
创建方法和连接都很简单。
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'的值。
fxh7622:=StorPro.Parameters.parambyname('as_out').Value;
这个时候存储过程返回的值就保存在了fxh7622里面。
其实获得存储过程的返回值比较简单,希望对大家有帮助。
本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/46930如需转载请自行联系原作者

fxh7622
 
相关文章
|
存储 SQL
vc++中,用ado执行sql server存储过程,并且取得返回值的例子
vc++中,用ado执行sql server存储过程,并且取得返回值的例子
|
23天前
|
存储 SQL 关系型数据库
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)
轻松入门MySQL:加速进销存!利用MySQL存储过程轻松优化每日销售统计(15)