有这样一个存储函数:
create proc sp_Name
@a varchar,
@b varchar output,
@c varchar output,
as
begin
   select @b=x,@c=y from tableName
   where z=@a
end
go
在DELPHI中,用一个storedproc 调用这个函数
能用一个DBGrid显示出查询的结果吗?
我的语句如下:
storedproc1.prepare;
storedproc1.parambyname('@a').asstring:=Edit1.text;
storedproc1.execproc;
如果能,那我的怎么就不行?
如果不能,那我改做点什么让它能呢?:P

解决方案 »

  1.   

    var b,c;//我不知道类型
    adoquery.sql.text='excute sp_name//这里有个空格'+quotedstr(edit1.text)+'b,c';
    adoquery.open();
    b=adoquery.fieldbyname('b').value;
    c=adoquery.fieldbyname('c').value;
    adoquery.close();
      

  2.   

    非 得用ado吗?我用的是bde
      

  3.   

    应该可以吧。。不过我一般是用adoquery 来执行存储过程的。。
     adoquery.add('exec sp_name 参数1,参数2');
    然后再用
      adoqeuery1.parambyname('参数1'):=要传的值;
     ....
      adoquery1.open;
      

  4.   

    with storeprocedure do
    begin
     procedureName := "存储过程名"
     Parameters.Refresh();   //刷新参数列表
     prepare;
     parameters.createparam(...);
     parambyname('@a').asstring:=Edit1.text;
     open;
    end;