设为首页 收藏本站
查看: 705|回复: 0

[经验分享] Delphi连接Oracle控件ODAC的安装及使用

[复制链接]

尚未签到

发表于 2016-7-30 09:47:34 | 显示全部楼层 |阅读模式
  Delphi连接Oracle有很多种方式,但大多要在客户机上安装Oracle那庞大的客户端,比较的不方便,使用ODAC控件连接Oracle则免去了这等麻烦.ODAC也是Oracle公司开发的控件.有for Delphi 6- Delphi 2007的版本,最新的ODAC版本已经到了ODAC 11.1.0.6.21版本了,不过对于我们来说,版本不一定要最新的,够用最好,不是么?
  Oracle 数据访问组件 (ODAC), 全称:Oracle Data Access Components, Oracle 数据存取组件(ODAC) 库为Borland Delphi,C++ Builder 以及 Kylix提供了一些非可视化的组件,它们用来存取Oracle关系数据库系统,ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口(API)。OCI 通过一个动态运行库(ORA*.DLL)提供了一个标准的数据库存取库及函数,以在应用程序中建立连接。也可以使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的、最小的数据库应用程序。
  下面是安装步骤(通过修改对应版本下的make.bat文件编译也可以达到如下效果):
安装环境:ODAC 6.10,Delphi 2006
编译及安装:在Project Manager对应的bpl上单击右键先Compile再Install
1、打开并编译安装Source\Delphi10\dac100.dpk
2、打开并编译安装Source\Delphi10\dacvcl100.dpk
3、打开并编译安装Source\Delphi10\dcldac100.dpk
4、打开并编译安装Source\Delphi10\odac100.dpk
5、打开并编译安装Source\Delphi10\odacvcl100.dpk
6、打开并编译安装Source\Delphi10\dclodac100.dpk
7、打开并编译安装Source\Delphi10\oraprov100.dpk
8、将C:\Program Files\Borland\BDS\4.0\ODAC\Source和C:\Program Files\Borland\BDS\4.0\ODAC\Source\Delphi10添加到"Search Path"中("C:\Program Files\Borland\BDS\4.0\ODAC\"是我放置ODAC的路径,你要换成你自已的路径,如果你不放置"C:\Program Files\Borland\BDS\4.0\ODAC\Source"则会出现"File not found: 'DBAccess.res'"的错误).
组件介绍:
TOraSession
设定与控制与Oracle数据库的连接。
当Username、Password、Server属性设置好以后,你可以通过调用Connect方法或者设定Connected属性为True来建立一个与数据库的连接。
所有要有数据访问的组件,像TOraQuery、TOraSQL、TOraScript,必须有他们的被赋予一个TOraSession实例的Session属性。

ODAC有两种连接Oracle的方式:在 Client 模式下,使用Oracle Client 软件, 或者在 Direct 模式下,通过 TCP/IP连接,这种方式发布程序的时候不需要客户端安装Oracle Client 软件。

推荐使用Direct模式

方法:在OraSession的Option中选择Direct,连接的服务器写为“IP:端口:全局服务器名”,例如:

OraSession1.Options.Direct:=True
OraSession1.Username:='system';
OraSession1.Password:='888';
OraSession1.Server:='192.168.10.23:1521:MyDataBase';
OraSession1.Connected;


TOraQuery

利用DML SQL语句更新数据库的表。将SQL语句放入SQLInsert,SQLDelete和SQLUpdate属性。
SQLInsert,SQLDelete,SQLUpdate,SQLLock,SQLRefresh属性支持自动绑定参数。要获得操作之前的字段值可以在字段名前加“OLD_”前缀。
如果没有设定SQLInsert,SQLDelete,SQLUpdate属性TOraQuery,TOraQuery会执行只读访问。

TSmartQuery
TSmartQuery是TOraQuery的另一种选择。它通过动态生成SQL语句,提供对记录insert,delete和update的操作。你也可以履行记录的自动阻塞(blocking),他们的修改前检查、提交后刷新。
为了修改TSmartQuery的记录集,在SQL属性中的SELECT语句应该获得更新表的RowID。当KeyFields属性被指定时,TSmartQuery也可被修改。TSmartQuery只能修改一个Oracle的表。所修改的表是UpdatingTable属性中的表或者是在From子句中的第一个表。

为了编辑Dept表中的数据,你可以在SQL属性中写:


SELECT D.*,D.ROWID FROM Scott.Dept D

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251276-1-1.html 上篇帖子: Oracle要求Apache对于离开java委员会重新考虑 下篇帖子: 甲骨文宣布推出Oracle开发人员仓库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表