这样写的,我需要返回两个参数
   proc1.ProcedureName:=proc_name;
    proc1.Parameters.ParamByName('@acc_nbr').Value :=acc_nbr;
   proc1.Parameters.ParamByName('@memo').Value :=memo;
    proc1.Open ;
    out_calling:=proc1.Parameters.ParamByName('@out_calling').Value;
    out_memo:=proc1.Parameters.ParamByName('@out_memo').Value;有错,求教正确写法

解决方案 »

  1.   

    proc1.Open;  //改为proc1.ExecProc;试试!
      

  2.   

    不行啊,一样提示list index out of bounds
      

  3.   

    proc1.ProcedureName:=proc_name;
    ADOStoredProc1.Parameters.CreateParameter('@acc_nbr',ftString,pdInput,长度,nil);
    ADOStoredProc1.Parameters.CreateParameter('@memo',ftString,pdInput,长度,nil);
    ADOStoredProc1.Parameters.CreateParameter('@out_calling',ftString,pdOutput,长度,nil);
    ADOStoredProc1.Parameters.CreateParameter('@out_memo',ftString,pdOutput,长度,nil);
    ...
      

  4.   

    你这里给它再赋值的话可能会清空
    proc1.ProcedureName:=proc_name;要不你把名字也手工加上去,然后
    去掉proc1.ProcedureName:=proc_name;这句!