用Delphi版或google查询相关资料,应该可以解决问题
解决方案 »
- oracle中把一个用户下的所有信息导入到另外一个oracle中
- oracle 物化视图不能刷新
- oracle 开发高手来看看,请教几个oracle的简单问题
- oracle数据导入导出问题
- 斑竹打击一下小广告吧
- oracle中如何用sql命令实现删除某张表的字段
- oracle for 2k 和 oracle for unix 的sql语句 有什么区别?应注意什么
- ★★★★★救急啊!!!ora_01013:user requested cancel of current operation是怎么回事??ODBC连接Oracle数据库。Open表的时候出错。
- SQL 时间段查询应该如何写
- 求大神指点,oracle 触发器 员工签到时判断签到是否成功并更新到签到表中怎么写?
- ORACLE难题(在线等待)
- 【delphi中利用ClientDataSet和ADOQuery分别如何调用oracle中的存储过程-JCC0128-400分奉上】
cliengDataset.open();
procedure GetClass(a number)
is
aaa varchar(30);
begin
select CID into aaa from AaCLASS;
end ;
调用如下:
procedure TForm1.Button1Click(Sender: TObject);begin
cds_master.Close ;
cds_master.CommandText := 'select * from pkg_JCCTEST1.GetClass(1)';
cds_master.Open;
end;执行到open时报错,sql命令未正确结束.这两个问题应该是开发中遇到的最最基本问题吧
不知道delphi+oracle各位的报表怎么做出来的?
返回数据集的都用临时表?
不用临时表用游标吧,delphi中无法对应
我说网上怎么就没一个完整一点的例子呢,都只在说行,真没劲,跟前段时间搞gis一样.
例如查询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上苦苦等待三天,还是大富翁上找到答案,感谢沉香屑!!!!!好久没有这种感觉了,一个字,爽!!!!!
ClientDataSet1.Close ;
ClientDataSet1.Params.Clear ;
ClientDataSet1.CommandText := '{call pkg_JCCTEST1.GetClass2(?)}';
ClientDataSet1.Params.CreateParam(ftinteger,'a',ptinput);
ClientDataSet1.Params[0].AsInteger := 3 ;包中的过程如下;procedure GetClass2(a in number, b out rc_class2)
is
begin open b for select aaclass.* from aaclass where pnumber >a;end ;
表aaclass :三个字段
cid :字符串 cname :字符串 pnumber :number(10,0)