存储过程如下
create proc cjsp_JiXiaoCK_web
@ai_rc int output,@as_Msg char(30) output
as
...delphi中如下调用存储过程
ADOStoredProc1.ProcedureName:='cjsp_JiXiaoCK_web';
ADOStoredProc1.Parameters.CreateParameter('@ai_rc', ftinteger, pdoutput, 20,0);
ADOStoredProc1.Parameters.CreateParameter('@ai_msg', ftstring, pdoutput, 50,'');
ADOStoredProc1.Prepared:=true;
ADOStoredProc1.ExecProc;怎么获取这两个参数的值?

解决方案 »

  1.   

    showmessage(string(ADOStoredProc1.Parameters.ParamByName('@ai_rc').Value)+'"'+ string(ADOStoredProc1.Parameters.ParamByName('@ai_msg').Value)+'"') ;
    我这样,什么都没取到
      

  2.   

    begin
     ADOStoredProc1.ProcedureName:='cjsp_JiXiaoCK_web';
     ADOStoredProc1.Parameters.Clear;
      with ADOStoredProc1.Parameters.AddParameter do //追加出参数
      begin
        Name := '@ai_rc';
        DataType := ftinteger;
        Direction := pdOutput; //out
        Size := 20;
      end;
      create
       with ADOStoredProc1.Parameters.AddParameter do //追加出参数
      begin
        Name := '@ai_msg';
        DataType := ftstring;
        Direction := pdOutput; //out
        Size := 20;
      end;
    ADOStoredProc1.Prepared:=true;
    ADOStoredProc1.ExecProc;
    ShowMessage(string(ADOStoredProc1.Parameters.ParamByName('@ai_rc').Value));
    ShowMessage(ADOStoredProc1.Parameters.ParamByName('@ai_msg').Value);
    end;
    写成这样,还是什么都不显示。正确的结果应该是0和''啊。。各位大人帮忙啊。。
      

  3.   

    with ADOStoredProc1 do
     begin
        close;
        ProcedureName:='K999';//K999为存储过程名;(此行为第一行)
        Parameters.Refresh;
        Parameters.ParamByName('@Fint'):=vFItemClasID;//参数
        Parameters.ParamByName('@FFloat').Value := 0;//返回值
        Prepared;
        ExecProc;
        NUM:=Parameters.ParamByName('@FFloat').Value;//返回值
     end;
      

  4.   

    先定義2個變量
    var 
    value1:integer;
    value2:string;
    ADOStoredProc1.ProcedureName:='cjsp_JiXiaoCK_web';
    ADOStoredProc1.Parameters.CreateParameter('@ai_rc', ftinteger, pdoutput, 20,0);
    ADOStoredProc1.Parameters.CreateParameter('@ai_msg', ftstring, pdoutput, 50,'');
    ADOStoredProc1.Prepared:=true;
    ADOStoredProc1.ExecProc;
    value1:=ADOStoredProc1.Parameters.ParamByName('@ai_rc').Value;
    value1:=ADOStoredProc1.Parameters.ParamByName('@ai_msg').Value;
      

  5.   

    楼上的方法试过了,还是取不到,连的数据库是sybase,
    连接串如下,Provider=MSDASQL.1;Password=123456;Persist Security Info=True;User ID=testid;Data Source=test
      

  6.   

    参数改易下ADOStoredProc1.Parameters.CreateParameter('ai_rc', ftinteger, pdoutput, 20,0);