SQL.Add('declare @Name varchar(20) ');
SQL.Add('exec abc_ji :id,@Name output ');
SQL.Add('select Ret=@Name ');
Open;

解决方案 »

  1.   

    abc-ji无效可能是你的数据库连错了;
    我觉得query好象不能返回一个 output类型的参数,因为他只是一个值而非一个recordset
    最好还是用ADOStoredProc 
    设置ADOStoredProc 的ProcedureName
    就可以看到他的参数,设置以下参数的类型
     ADOStoredProc1.ExecProc;
      Edit1.Text:=  ADOStoredProc1.Parameters[2].Value;
    要用adoquery
    CREATE PROCEDURE abc_ji 
    @ID int AS
    select name from student where  ID=@ID
    ---------
    id :=111;
    qry.close
    qry.sql.text := 'abc_ji '+ittostr(id);
    qry.open;
    eidt1.text :=qry.Fields[0].AsString;
    qry.close;//我已经验证过了
      

  2.   

    对newyj(老鬼):老是提示我:Missing Connection or ConnectionString
    但是我显示表的记录又正确,至少不是数据库连接出错,这是什么原因?
      

  3.   

    返回参数的存储过程,不能用TADOQuery,必须用TADOProcedure
      

  4.   

    对zx_wang(wzx) :谢谢你,但是我写一个存储过程进行查询,用查询控件应该能显示结果吧?怎样实现?我的存储过程已该成:
    CREATE PROCEDURE abc_ji 
    @ID int
    AS
    select name from student where  ID=@ID
      

  5.   

    ADOQuery1.SQL.ADD('EXEC @ID = 1');
    OK!
      

  6.   

    或者
    ADOQuery1.SQL.ADD('EXEC @ID = :ID');
    Parameters['ID'].Value := IntTostr(Edit1.Text);
      

  7.   

    你的ProcedureName是不是"abc_ji;1"?去掉";1"
      

  8.   

    ADOQuery1.SQL.ADD('EXEC abc_ji @ID = :ID');
    ADOQuery1.Parameters['ID'].Value := IntTostr(Edit1.Text);
      

  9.   

    请问各位ADOQuery1的哪些属性需设置?
      

  10.   

    执行到ADOQuery1.open;
    还是提示:Missing Connection or ConnectionString
    没辙了,都不知道该在哪些地方设置,555555555555!!!!!
      

  11.   

    1.ODBC
    ADOQuery1.ConnectionString := 'Driver={SQL Server};UID=sa;PWD=;Initial Catalog=AirImport;Server=192.168.12.6'
    2.OLEDB
    ADOQuery1.ConnectString := 'Provider=SQLOLEDB.1;User ID=sa;Password=;Initial Catalog=AirImport;Data Source=192.168.12.6'强烈建议你用OLEDB