delphi中调用oracle的存储过程

delphi中调用oracle的存储过程

ID:27887889

大小:29.50 KB

页数:11页

时间:2018-12-06

delphi中调用oracle的存储过程_第1页
delphi中调用oracle的存储过程_第2页
delphi中调用oracle的存储过程_第3页
delphi中调用oracle的存储过程_第4页
delphi中调用oracle的存储过程_第5页
资源描述:

《delphi中调用oracle的存储过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、-【delphi+oracle报表解决方案(一)】delphi中调用oracle的存储过程(分带返回游标,不返回值两种) 关键字:delphi,oracle存储过程,游标,返回数据集,报表注:delphi6+oracle8.1.6一.创建包与包体1.附:建表aaclass为下面作测试用createtableaaclass(CIDVARCHAR2(50),CNAMEVARCHAR2(50),pnumberNUMBER(10,0));INSERTINTOaaclassvalues('c1','cn1'

2、,10);INSERTINTOaaclassvalues('c2','cn2',40);INSERTINTOaaclassvalues('c1','cn3',30);commit;2.建包:CREATEORREPLACE PACKAGEPKG_JCCTEST1                          AS.--- typerc_classisrefcursor;                    --求p1,p2的和与差,返回的多个值通过游标返回 procedureGetSubAnd

3、Sum2(p1number,p2 number,             ResultCursoroutrc_class);  --查询满足条件的数据集,返回数据集通过游标返回 procedureGetClass2(ainnumber,ResultCursoroutrc_class); --往表中插一条记录,不返回结果集时,本人用AdoQuery调用(adodataset好象要求必须返回结果集) procedureInsertClass(p_cidvarchar2,p_cnamevarchar2,

4、                         p_pnumbernumber);endPKG_JCCTEST1; 3.建包体CREATEORREPLACE PACKAGEBODYPKG_JCCTEST1.---ASprocedureGetSubAndSum2(p1number,p2 number,             ResultCursoroutrc_class)ISBEGIN openResultCursorfor   selectp1-p2as"sum",p1+p2as"sub"fr

5、omdual;END;procedureGetClass2(ainnumber,ResultCursoroutrc_class)isbegin openResultCursorfor  selectaaclass.*fromaaclasswherepnumber>a;end;procedureInsertClass(p_cidvarchar2,p_cnamevarchar2,                         p_pnumbernumber).---isbegin insertint

6、oaaclassvalues(p_cid,p_cname,p_pnumber);-- commit;end;  二.在delphi中利用AdoDataSet调用上述第一个存储过程1.利用AdoConnection1连接数据库(驱动为oracleProviderforOLEDB), **并在连接字符串中加入这一节: PLSQLRSet=1;如下所示:Provider=OraOLEDB.Oracle.1;Password=KXD;PersistSecurityInfo=True;UserID=KXD;

7、DataSource=TEST3;PLSQLRSet=12.在窗体上加AdoDataSet1.---指明连接为上述AdoConnection1,下面可以放一个按钮,单击按钮就能调用第一步中创建的包过程,并返回数据集。代码如下所示:procedureTForm1.Button1Click(Sender:TObject);var AResult,BResult:integer;begin ADODataSet1.Close; ADODataSet1.CommandType:= cmdText; ADO

8、DataSet1.Parameters.Clear; //***利用call方法调用oracle过程时,参数必须由?来传,即使你要传的参数为常理 //输出游标的参数不需要指定!!!!!!,本来此函数带三个参数,我们这里只需要传两个参数. ADODataSet1.CommandText:='{callPKG_JCCTEST1.GetSubAndSum2(?,?)}'; //***C顺序有关,createparam必须放在commandtext赋值语句之后. //创建第一个参数,对应c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。