有表:cus_tab
username sex
aa 男
bb 女
cc 男
请大家帮我写一个过程,要求是在Delphi里ADOQuery或ADOStoredProc1调用这个过程时,要返回记录集,并显示在dbgrid中。只要调用该过程有记录集返回就行,不管如何做,最好用参数或游标,谢谢了!
username sex
aa 男
bb 女
cc 男
请大家帮我写一个过程,要求是在Delphi里ADOQuery或ADOStoredProc1调用这个过程时,要返回记录集,并显示在dbgrid中。只要调用该过程有记录集返回就行,不管如何做,最好用参数或游标,谢谢了!
放一个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;
这样就可以了呀,你是哪遇到问题了?
没有那么麻烦写过程的!
create proc aa
as
select * form cus_tab
end
在Oracle里写的过程有不可以用*的,这样编译已给通不过了。
---------- --------
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;