在SQLServer2000中创建了一个存储过程,存储过程中定义了变量,那么在delphi中怎样才能给这些变量赋值呢?将delphi中的值传递给存储过程中的变量?本人在线,时刻关注高手们的到来!

解决方案 »

  1.   

    非常简单的,存储过程带上参数不久行了。
    create procedure OW_Proc_Sql
           @SqlID         varchar(128),
           @P0           varchar(128),
           @P1           varchar(128),
           @P2           varchar(128),
           @P3           varchar(128),
           @P4           varchar(128),
           @P5           varchar(128),
           @P6           varchar(128),
           @P7           varchar(128),
           @P8           varchar(128),
           @P9           varchar(128)as
    begin
      declare 
           @Text  varchar(2000),
           @retcode  int
    select @Text = @SqlID
    ........
    end
      

  2.   

    StoredProc1.Close;
        StoredProc1.DatabaseName:='testpy';
        StoredProc1.StoredProcName:='sp_week_analyse;1';
        StoredProc1.Params[1].ParamType := ptInput;
        StoredProc1.Params[1].AsString := 'D20040301,D20040302,D20040304,D20040305';
        StoredProc1.Params[2].ParamType := ptInput;
        StoredProc1.Params[2].AsString := 'È«Íø';
        StoredProc1.Params[3].ParamType := ptInput;
        StoredProc1.Params[3].AsString := '7-23';
        StoredProc1.Prepare;
        StoredProc1.ExecProc;
      

  3.   

    @SqlID参数在DELPHI调用时可以传值,select @Text = @SqlID将传入的值赋给存储过程中的变量@Text.
      

  4.   

    或者使用查询:
       with query do
         begin
           close;
           sql.clear;
           sql.Add('exec sp_week_analyse 12,23,45');
           ExecSQL ;
           close;
         end;
      

  5.   

    给你一个调用存储过程的例子:
    with ADOStoredProc1 do
      begin
        Active:=False;
        ProcedureName:='p_fpsj_make';
        Parameters.Clear;
        with parameters.AddParameter do
        begin
          DataType := ftVarBytes;
          Direction := pdInput;
          Name:='@sflxbh';
        end;
        with parameters.AddParameter do
        begin
          DataType := ftVarBytes;
          Direction := pdInput;
          Name:='@yhbh';
        end;
        with parameters.AddParameter do
        begin
          DataType := ftBytes;
          Direction := pdInput;
          Name:='@zdlb';
        end;
        with parameters.AddParameter do
        begin
          DataType := ftInteger;
          Direction := pdOutput;
          Name:='@ireturn';
        end;
        if not Prepared then Prepared:=True;
        Parameters.ParamByName('@sflxbh').Value := sflxbh;
        parameters.ParamByName('@yhbh').Value := yhbh;
        Parameters.ParamByName('@zdlb').Value := ;
        Parameters.ParamByName('@ireturn').Value := ;
        ExecProc;
      end;
      

  6.   

    sweetiehl(力荣)老兄是否从事过电力软件的开发呢
    好熟悉的sflxbh  yhbh 啊!