aql 过程如下:
CREATE proc yj01

   @YGNm    char (10)= '%',
   @ygno     char(4)='%'
)
as
set nocount on
select * from mid_ygdb where ygnm=@ygnm and ygno=@ygno
GO程序如下:
procedure TForm1.FormShow(Sender: TObject);
begin
  ADODataSet1.Close;
  ADODataSet1.CommandType:=cmdStoredproc;
   ADODataSet1.CommandText:='yj1';
    ADODataSet1.Open;
end;
如何将过程参数指定出来?  麻烦将上面过程调用写完整了?多谢了!

解决方案 »

  1.   

    procedure   TForm1.FormShow(Sender:   TObject); 
    begin 
      Close; 
       sql.clear;
        sql.add('select   *   from   mid_ygdb   where   ygnm=:ygnm   and   ygno=:ygno');
        Parameters.ParamValues['ygnm']:= 'A';
        Parameters.ParamValues['ygno']:= 'B';
        open;
          
            
    end; 
      

  2.   

    我不想在程序中,使用SQL语句,(有语句的地方,我只想去调用SQL过程来实现)
      

  3.   

    // 这样应该是可以的.procedure   TForm1.FormShow(Sender:   TObject); 
    begin 
      ADOQuery.Close; 
      ADOQuery.sql.clear;
        ADOQuery.sql.text := 'exec yj01 '''+参数一+''','''+参数二+'''';
        ADOQuery.Exec; 
    end; 
      

  4.   


              ADODataSet1.Parameters.Add;
           ADODataSet1.Parameters[0].Direction := pdReturnValue;
             ADODataSet1.Parameters[0].DataType := ftInteger;
             ADODataSet1.Parameters[0].Name := '@RETURN_VALUE';
             ADODataSet1.Parameters[0].Size := 0;
             ADODataSet1.Parameters[0].Precision := 10;         ADODataSet1.Parameters.Add;
             ADODataSet1.Parameters[1].Direction := pdInput;
             ADODataSet1.Parameters[1].DataType := ftString;
             ADODataSet1.Parameters[1].Name := ' @YGNm ;
             ADODataSet1.Parameters[1].Size := 10;
             ADODataSet1.Parameters[1].Precision := 10;         ADODataSet1.Parameters.Add;
            ADODataSet1.Parameters[2].Direction := pdInput;
             ADODataSet1.Parameters[2].DataType := ftString;
             ADODataSet1.Parameters[2].Name := '@ygno;
             ADODataSet1.Parameters[2].Size := 6;
             ADODataSet1.Parameters[2].Precision := 10;  
               ADODataSet1.Parameters[1].Value := YGNm;
               ADODataSet1.Parameters[2].Value := ygno;
                ADODataSet1.Execute;
      

  5.   

    procedure TForm1.FormShow(Sender:TObject);   
    Var
    Str:String;
    begin   
      Str := Format('select * from mid_ygdb where ygnm=%s and ygno=%s',[QuotedStr(ygnm),QuotedStr(ygno)]);
      Close;   
      sql.clear; 
       sql.add(Str); 
       open;       
    end; 
      

  6.   

    z直接定义一个,,把你要写的sql语句放进去就可以了
    ,用参数也是可以的