Delphi中怎么调用SQL数据库的存储过程

Delphi中如何调用SQL数据库的存储过程
我的存储过程:ALTER PROCEDURE [dbo].[mathin]
@FuntionID INT= 0 , --100 新增, 200 修改, 300 删除 , 400 查询
如何用ADOQurery控件调用
qry1.Close ;
qry1.SQL.Clear ;
qry1.SQL.Add({exec mathin @Funtion=100,@货号=6,@条码=3432,@拼音编码=dsgg,@品名=梨子,@规格=8796,@单位=斤,@产地=江苏苏州,@类别=sdgh,@进货价=2,@销售价1=3,@销售价2=4,@最低售价=3});
qry1.Open ;
这是我自己瞎写的,不会啊,请高手们多多指教

------解决方案--------------------
用ADOStoredProc执行存储过程
------解决方案--------------------
ADOStoredProc可以,adoquery也可以,写sql exec ...
------解决方案--------------------
把最后一行的 OPEN
改成 ExecSQL

------解决方案--------------------
示例:
Delphi(Pascal) code

var
  qt_:Tadoquery;
  counts_:Integer;


    qt_:=TADOQuery.Create(nil);
  try
    with qt_ do
    begin
      try
        Connection:=DM.ADODB;
        sql.Text:='exec proc_3_isTab_yhfw_SIDNo :yhfw_sidno_,:tb_,:counts_ out'; //执行存储过程proc_3_isTab_yhfw_SIDNo,共有三个参数,其中yhfw_sidno_、tb_传入存储过程,counts_为存储过程返回
        Parameters.ParamByName('yhfw_sidno_').Value:=yhfw_SIDNo; //传值给存储过程参数
        Parameters.ParamByName('tb_').Value:=Trim(tb_); //传值给存储过程参数
        ExecSQL;
        counts_:=Parameters.ParamByName('counts_').Value; //取存储过程返回值
        if counts_>0 then Result:='True' else Result:='False';
      except
        on E:exception do
        begin
          ShowMessage('执行失败');
          Result:='Error';
        end;
      end;
    end;
  finally
    qt_.Free;
  end;

------解决方案--------------------
关注。
------解决方案--------------------
1.将open修改为ExecSQL
2.语句用''包括在内
------解决方案--------------------
Delphi(Pascal) code
          qry_tep_go.Close;
          qry_tep_go.SQL.Clear;
          qry_tep_go.SQL.Add( ' exec SP_HR_QXY_RATE @Years= '+ QuotedStr(Trim(cxComboBox5.Text))+' ' );
          qry_tep_go.ExecSQL;

------解决方案--------------------
存储过程啊。正在学
------解决方案--------------------
3楼正解,用ExecSQL,不能用Open。

当ADOQuery中是 Insert、Update、Delete 等那么不返回结果集(数据记录)的SQL命令时, 必须用ExecSQL 。
------解决方案--------------------
探讨

示例:
Delphi(Pascal) code

var
qt_:Tadoquery;
counts_:Integer;


qt_:=TADOQuery.Create(nil);
try
with qt_ do
begin
try
Connection:=DM.ADODB;
sql.Text:='exec pr……