有表:cus_tab
  username   sex
     aa       男
     bb       女
     cc       男
请大家帮我写一个过程,要求是在Delphi里ADOQuery或ADOStoredProc1调用这个过程时,要返回记录集,并显示在dbgrid中。只要调用该过程有记录集返回就行,不管如何做,最好用参数或游标,谢谢了!

解决方案 »

  1.   

    用QUERY的方法
    放一个ADOQUERY,DATASOURCE,DBGRID,ADOCONNECTION,
    store proc
    create proc aa
    as
    select * form cus_tab
    end
    在delphi
    1.create adoconnection;
    2.指定QUERY的连接为ADOCONNECTION
    3。在QUERY的SQL中写入
       exec aa
    4.query.active:=true;
    5.datasource.dataset:=adoquery;
    6.dbgrid.datasource:=datasource;
    这样就可以了呀,你是哪遇到问题了?
      

  2.   

    我说现在的人咋都不喜欢搜索,专门为你们写的贴子呀,浪费~http://expert.csdn.net/Expert/topic/2280/2280860.xml?temp=.6501123http://expert.csdn.net/Expert/topic/2280/2280864.xml?temp=.920437
      

  3.   

    记录集返回就行?????没有其它条件的话,直接用adoquery就行的!
    没有那么麻烦写过程的!
      

  4.   

    各位大哥,先看看 lihao_ningxia(耗子) 的过程。
    create proc aa
    as
    select * form cus_tab
    end
    在Oracle里写的过程有不可以用*的,这样编译已给通不过了。
      

  5.   

    SQL> select * from aa;        ID NAME 
    ---------- -------- 
            1 猪八戒 
            2 孙悟空 
    CREATE OR REPLACE PACKAGE pkg_test 
    AS 
    TYPE myrctype IS REF CURSOR; 
    END pkg_test; 
    / create or replace PROCEDURE get(p_rc OUT pkg_test.myrctype) 
      IS 
         sqlstr   VARCHAR2 (50); 
      BEGIN 
         sqlstr:='select * from aa'; 
         OPEN p_rc FOR sqlstr; 
    END get; 
    / 在窗体上放一个ADOStoredproc 
    设置 procedurename=get 
        prepared = true 
        active = true 
    还有 connectstring 
    代码如下,好运! procedure TForm1.Button1Click(Sender: TObject); 
    begin 
    adostoredproc1.close; 
    adostoredproc1.open; 
    label1.caption:= ADOStoredProc1.fields[1].asstring; 
    while not adostoredproc1.eof do 
       begin 
         label2.caption:= ADOStoredProc1.fields[1].asstring; 
         adostoredproc1.Next; 
       end; 
    end;