AdoQuery.Parameters.parambyname('(@InParam').value:=x;

解决方案 »

  1.   

    AdoQuery.Parameters.parambyname('@InParam').value:=x;  
     ShowMessage(inttostr(AdoQuery.Parameters.parambyname('@OupParam').value));
      

  2.   

    哪就是你的StoreProcedure有问题
      

  3.   

    ADOQuery.Parameters.AddParameter;
    ADOQuery.Parameters[0].Name:='InParam';
    ADOQuery.Parameters[0].Direction:=pdInput;
    ADOQuery.Parameters[0].DataType:=ftString;
    ADOQuery.Parameters[0].Value:=;ADOQuery.Parameters.AddParameter;
    ADOQuery.Parameters[1].Name:='OutParam';
    ADOQuery.Parameters[1].Direction:=pdOutput;
    ADOQuery.Parameters[1].DataType:=ftString;
    ADOQuery.Parameters[1].Value:=;
      

  4.   

    调用StoreProcedure过程要用TADOStoreProc实现
      

  5.   

    呵,用TAdoStoreProc我会
     with AdoQuery1 do begin
    // Parameters.parambyname('@InParam').value:=100;
     sql.add('exec MySp @InParam,@Outparam OutPut');
     Parameters.parambyname('@InParam').value:=100;
     ShowMessage(inttostr(AdoQuery1.Parameters.parambyname('@OutParam').value));
     end;
    错误提示
    @InParam参数没有找到
      

  6.   

    看到木石三的一段代码:知道这样可以实现:
    with AdoQuery1 do begin
    Close;
    Sql.Clear;
    Sql.Add('Declare @aa Int');
    Sql.Add('Declare @bb Int');
    Sql.Add('Set @aa=100');
    Sql.Add('Exec MySP @aa,@bb Output');
    Sql.Add('Select @bb');
    Open;
    ShowMessage(Fields[0].AsString);
    end;
      

  7.   

    给你看个例子:这是我写的一个存储过程:  Create Proc prCountStuXkjg       
            @xh     char(10)         ,
            @result int        OUTPUT
      AS
      declare @nbid int  set @nbid=(select nbid from tbGxkStuInfo where xh=@xh) 
      set @result=(select count(*) from tbGxkXkjg where nbid=@nbid group by nbid)  GO这是我的代码调用:    DM.ADOStoredProc.ProcedureName:='prCountStuXkjg';    DM.ADOStoredProc.Parameters.AddParameter;
        DM.ADOStoredProc.Parameters[0].Name:='xh';
        DM.ADOStoredProc.Parameters[0].Direction:=pdInput;
        DM.ADOStoredProc.Parameters[0].DataType:=ftString;
        DM.ADOStoredProc.Parameters[0].Value:=edtXh.Text;    DM.ADOStoredProc.Parameters.AddParameter;
        DM.ADOStoredProc.Parameters[1].Name:='result';
        DM.ADOStoredProc.Parameters[1].Direction:=pdReturnValue;
        DM.ADOStoredProc.Parameters[1].DataType:=ftInteger;    DM.ADOStoredProc.ExecProc;
    另外说一句,ADO的几个控件都是从ADO原生的Dataset继承下来的,只要改改CommandType,都可以通用。
      

  8.   

    阿龙你好
    谢谢,那么用AdoQuery如何来实现
    要求给出完整的调用部分
      

  9.   

    create proc MyProc;
    as
    Declare  @param_out char(25)
    use pubs
    select @param_out=authors from pubs
    select param_out @param_out------------------------
    Myquery.close;
    Myquery.sql.clear;
    Myquery.sql.add('exec MyProc');
    Myquery.Open;//如果没有返回记录集用myquery.execsql;
    while not  myquery.eof do
    begin
    showmessage(myquery.fieldbyname('param_out').asstring);
    myquery.next;
    end;
    myquery.close;
     
      

  10.   

    好啊,牛牛
    还记得我吗 我把你的QQ丢了
    帮我看一个关于F1ook的贴子
    http://www.csdn.net/expert/topic/462/462612.shtm
      

  11.   

        AdoQuery.SQL.add:=''exec MyProc'';    ADOQuery.Parameters.AddParameter;
        ADOQuery.Parameters[0].Name:='InParam';
        ADOQuery.Parameters[0].Direction:=pdInput;
        ADOQuery.Parameters[0].DataType:=ftString;
        ADOQuery.Parameters[0].Value:=;    ADOQuery.Parameters.AddParameter;
        ADOQuery.Parameters[1].Name:='OutParam';
        ADOQuery.Parameters[1].Direction:=pdOutput;
        ADOQuery.Parameters[1].DataType:=ftString;
        AdoQuery.execSQL;
        
        showmessage(AdoQuery.Parameters[1].Value);