我想在前台用一个ADOStoredProc1在不同时间连接后台多个存储过程,在前台应怎么设置?
关键是ADOStoredProc1.Parameters应该怎么动态设置?   后台SQL有两存储过程:    PROCEDURE1(@A1 varchar(10),@B1 int)
    PROCEDURE2(@A2 varchar(12)) 这个问题已困惑我几天啦,均没人帮我解决真的好盼望呀!!

解决方案 »

  1.   

    试试
    with adostoreproce1 do
    begin
    porceduernma='stor1;1';
    parameters.clear;
    parameters.CreateParameter('@ff',ftinteger,pdinput,0,nil);
    execprocporceduernma='stor2;1';
    parameters.clear;
    parameters.CreateParameter('@dd',ftinteger,pdinput,0,nil);
    execprocend;
      

  2.   

    忘了一句
    Parameters.parameterbyname('@ff').asinteger:=22
      

  3.   

    storedproc.ProcedureName:='DELETE_TODAY';
     storedproc.Parameters.ParamByName('WHICHTABLE').Value :='aaa';
     storedproc.ExecProc ;我在oracle可以执行,
    这样不行?
     用storedproc.Parameters.CreateParameter(?????) 查一下在线帮助!!动态创建
    参数应行吧!!
      

  4.   

    我一般都是用ADOQUERY来执行存储过程的    PROCEDURE1(@A1 varchar(10),@B1 int)
        PROCEDURE2(@A2 varchar(12))ADOQUERY.EXECUTE(PROCEDURE1 'VALUE', 110)
    如果是返回结果集的,则
    ADOQUERY.OPEN(PROCEDURE1 'VALUE', 110)
      

  5.   

    我的意思是你可以把存储过程当作普通的SQL语句看待我们在DELPHI中执行SQL语句不是经常都用ADOQUERY吗?如果是执行没有结果集返回的操作,比如:UPDATE,INSERT,DELETE等
    ADOQUERY.EXECUTE(UPDATE TB_CODE SET CODENAME = 'ONLY YOU' WHERE CODEID = 119)如果是执行有返回结果集的操作,比如:SELECT
    ADOQUERY.OPEN(SELECT CODEID, CODENAME FROM TB_CODE WHERE CODEID = 110)---------------
    有问题再发消息给我,GOOD LUCK TO YOU!
      

  6.   

    接分了
    ADOStoredProc1.Parameters.CreateParameter('Day', ftString, pdInput, 10,DateTime.Text);第一个参数为参数名,第二个为参数类型(ftString,ftinteger...),第三个为存储过程参数类型(pdInput,pdOutput),第四个为参数大小,第五个是参数值。
    还有疑问请联系我
      

  7.   

    楼上的注意是
    用一个ADOStoredProc1在不同时间连接后台多个存储过程
     ---------         ------
    关键是ADOStoredProc1.Parameters应该怎么动态设置
      

  8.   

    function dbObject.GetQueryCommand(Sql: string;
     pam: array of const): TADOQuery;
    var
    m:Integer;
    myQuery:TADOQuery;begin
      myQuery:=TADOQuery.Create(Application);
      myQuery.Connection:=myConnection;
      myQuery.Close();
      myQuery.SQL.Clear();
      myQuery.SQL.Add(Sql);  for m:=0 to High(pam) do
      myQuery.Parameters.Add(pam[m]);  end;
      result:=myQuery;
    end;