星期二, 六月 02, 2009

delphi中ADOStoredProc第二次提交存储过程连接失败问题解决方法

在delphi中遇到一个很奇怪,使用ADOStoredProc调用一个存储过程,第一次提交系统检查未通过,当修改数据后第二次提交的时候就提示"连接失败",原因未能找到,最终从网上找到使用AdoQuery调用存储过程解决,附AdoQuery调用存储过程的例子:

1、建立存储过程
Create Proc MyABC @a int ,@b int, @c int output
as
set @c=@a*@b
2、在SQL中执行:
declare @a int,@b int,@c int
set @a=250
set @b=40
exec MyABC @a,@b,@c output --注意要添加output 关键字!
select @c
3、在Delphi中调用使用:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('execute MyABC :a,:b,:c output');//也要添加output 关键字!
ADOQuery1.Parameters.ParamByName('a').Value:=250;
ADOQuery1.Parameters.ParamByName('b').Value:=40;
ADOQuery1.ExecSQL;
showmessage(ADOQuery1.Parameters.ParamByName('c').Value);

没有评论: