在delphi版块或goggle中查询相关资料,应该能找到解决办法,另delphi有一专门处理存储过程的组件。
解决方案 »
- 怎么能查到一段时间内对某一个表都做了哪些操作?在线等
- Oracle 到底有沒有 GUI 介面,好似SQL Server Studio Managment 的....
- OracleDBConsoleorcl 无法启动
- 求一查询语句,请高手帮忙
- 菜鸟问题,高分回馈!!
- 搞了我几天了,换了几套盘了,Oracle盘的安装问题“regsvr32”错误
- 如何取 oracle 中自动增加的ID。在线等待。
- 在SQL*PLUS怎样用UltraEdit取代NotePad成为默认编辑环境
- PROC问题:在proc程序中通过database link 往另外的库中insert时没反应,但在sqlplus中手工插入可以
- Oracle 求最后一次時間和上一次時間 SQL
- 【delphi中利用ClientDataSet和ADOQuery分别如何调用oracle中的存储过程-JCC0128-400分奉上】
- 【delphi中利用ClientDataSet和ADOQuery分别如何调用oracle中的存储过程-JCC0128-400分奉上】
例如查询scott下面的emp
1.建包,定义游标类型和过程
create or replace Package pkg_demo
AS
TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
procedure open_emp_cv(emp_cv OUT EmpCurTyp);
END pkg_demo;
2。定义包体
create or replace package body pkg_demo
AS
procedure open_emp_cv (emp_cv OUT EmpCurTyp)
IS
BEGIN
OPEN emp_cv FOR SELECT * FROM emp;
END open_emp_cv;
end pkg_demo;
3。建立ado连接,注意用oracle的provider,连接字符串里包含“PLSQLRSet=1”
ADOConnection1.ConnectionString:='PLSQLRSet=1;Provider=OraOLEDB.Oracle;Password=tiger;Persist Security Info=True;User ID=scott;Data Source=fjddmis;Extended Properties=""';
ADOConnection1.Open;
4。用TADODataset调用存储过程,注意调用格式
ADODataSet1.Connection:=ADOConnection1;
ADODataSet1.CommandText:='{call pkg_demo.open_emp_cv}';
ADODataSet1.CommandType:=cmdText;
ADODataSet1.Open;
------------------------ 这是 沉香屑 大侠在lid=1107306中的回答。很经典。
来自:jrq, 时间:2002-9-13 11:33:00, ID:1322683
http://otn.oracle.com/docs/tech/windows/ole_db/doc/html/using.htm#1000470 如是说:
哈哈哈哈哈,三层的我也搞定了,中间层再加一个adodataset,客户端还是clientdataset,
把原来adodataset的代码放到clientdataset中即可。
爽呀,过两天整理出来大家看看,唉,搞完之后觉得太小儿科了:)花了我三天时间,在csdn上苦苦等待三天,还是大富翁上找到答案,感谢沉香屑!!!!!好久没有这种感觉了,一个字,爽!!!!!