用adoquery 如何调用oracle 里的functions?小弟在线等待,急...

yangzong19 2010-11-05 11:44:46
我在oracle里写了一个functions目的是为了是想返回一个select数据集,以下是代码


CREATE OR REPLACE PACKAGE PKG_TEST
AS
TYPE REFCURSOR IS REF CURSOR;
END PKG_TEST;


create or replace function query_book return PKG_TEST.REFCURSOR is
Result PKG_TEST.REFCURSOR;
begin
open Result for
select * from test1;

return(Result);
end query_book;

我在PL/SQL里写select query_book from dual是可以运行的,但我在delphi 的adoquery这样执行却出错,在delphi里该如何调用这个functions呢?小弟在线等待,急...
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangzong19 2010-11-05
  • 打赏
  • 举报
回复
TO taiguang
能不能给个存储过程 返回数据集的简单例子,万分感谢
软件钢琴师 2010-11-05
  • 打赏
  • 举报
回复
CmbLayer.Clear;
mylstlot:= my_ADODB.create();
mylstlot.ConnectDB(DBconnectstring.DMDBstr);
setlength(procparameter,2);
procparameter[0]:=lot.lot_id;
procparameter[1]:=inttostr(lot.Current_wafer);
ADOStoredProc1:=mylstlot.RunStoredProc('PKG_DM_CPutility.sp_get_defect_layer',procparameter);
setlength(Defectarray,0);
setlength(Defectarray,ADOStoredProc1.RecordCount);
软件钢琴师 2010-11-05
  • 打赏
  • 举报
回复
你写个存储过程 返回数据集不是更好么?
hongqi162 2010-11-05
  • 打赏
  • 举报
回复
create or replace procedure sp_getResult(rst out sys_refcursor) is
begin
open rst for select * from yourtablename;
end;


然后使用adoquery调用这个存储过程就可以了
yangzong19 2010-11-05
  • 打赏
  • 举报
回复
我现在就是想用delphi 的AdoQuery1+DataSource1+DBGridEh1 然后调用一个oracle的存储过程能够返回数据集能显示在DBGridEh1里!谁能给一个如何在oracle里建立返回数据集的存储过程,然后在delphi 里AdoQuery1+DataSource1+DBGridEh1 又如何调用的简单例子给我,小弟万分感谢!

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧