【Delphi】运用Oracle Data Access Component(ODAC)组件

2016-08-22 10:21:34来源:http://tener.blog.51cto.com/1065457/648595作者:chong023人点击



最近因为工作需要,需要用Delphi7开发一个简单的工具,该工具主要包括数据维护与用户信息验证两个功能,其中将与数据库进行必要的数据交互,数据库采用Oracle10g。这个简单的工具主要放在客户端电脑上完成部分功能。按照往常的使用方式,采用ADO方式连接数据库,需要在客户端机器上安装Oracle客户端软件(并且只能安装Oracle 8i客户端软件)。这或多或少给工具的使用带来几个不便之处,第一,需要在客户端电脑安装Oracle客户端软件,本来采用Delphi开发就是为了避免安装其他额外的软件;第二,对该工具的维护造成不便。


基于此,鄙人思考能否采用无须安装客户端软件就可以连接oracle数据库,出于这样的目的,通过多种方法获悉Delphi组件 - Oracle Data Access Components(ODAC)。ODAC组件不仅适用于Delphi平台,还适用于.Net平台,以及C++ Builder开发平台,是一个很不错的组件。


下面将重点介绍ODAC组件在Delphi7开发工具中的安装与使用。


首先,获取ODAC组件源代码。从其他网站或这里获取ODAC组件源代码。该源代码压缩包主要包括demo示例和source源代码,以及相关的说明文档。demo示例主要包含ODAC对oracle数据库各种数据操作样例,source主要包含与各开发平台对应的源代码。将下载得到的压缩包解压至指定的文件夹内。 (注:英语水平过得去的朋友可以参考提供的说明文档进行编译安装,其他朋友呢,就可以参考我的操作过程进行安装)



其次,编译ODAC组件源代码。(注:Source文件夹内包含对各IDE版本的对应源代码,此时一定要选择与自己IDE版本一致的源代码,我这里的IDE版本是7,所以选择的是Source/Delphi7/下的源代码)


编译源代码主要有两种方式,


一、通过执行Source/Delphi7文件夹下的Make.Bat批处理文件;


1.需要用记事本打开该批处理文件,将其中ideDir=“D:/Program Files/Delphi7更改为自己IDE的安装路径(我的IDE安装路径为D:/Borland/Delphi7,所以改为ideDir=”D:/Borland/Delphi7) (注意:这里最后没有引号,千万不要画蛇添足给加上哦,否则会报错的)


2.保存修改后的批处理文件,双击执行批处理文件。执行完成后将生成相应的BPL文件(存放在Source/Delphi7文件夹下,以及Source/Delphi7/Odac文件夹下)




编译生成完以后,根据以下提示将对应文件拷贝至指定位置



二、通过IDE开发平台进行编译。这里需要提醒的是,由于源代码部分是设计期代码,部分是运行期代码,所以在编译过程中可以忽略运行期代码的编译错误。



编译安装前需要对Delphi开发工具进行必要的设置,以免后期出现不必要的错误(主要提示组件源代码没有找到)。Tool - Environment Options - Library添加解压位置,指定代码文件位置。设置Output BPL路径。



打开IDE开发工具,FILE-OPEN打开以上7个dpk文件,进行逐个的编译complie,安装install,值得注意的是这里需要忽略运行期代码的install,只需install设计期的代码。



最后,安装ODAC组件源代码。打开Delphi7的开发工具,Component - Install Packages



点击ok就完成对ODAC组件的安装。


安装完成后,ODAC组件将出现在Delphi7工具栏末尾。




ODAC组件的使用


ODAC组件包括OraSession,OraQuery, OraSmartQuery等其他控件,OraSession控件主要完成对数据库的链接,可以通过客户端方式,非客户端方式连接。客户端连接方式需要安装Oracle客户端软件,以及配置数据库连接服务,使用时,需要提供数据库用户信息,连接服务名等必要信息,与是用ADO方式连接类似;非客户端连接方式只需提供数据库服务ip地址,数据库服务端口号,数据库实例名SID,数据库用户信息等必要信息,需要设置OraSession.Options.Net := true就可以连接数据库。


ODAC组件中的其他控件的使用与普通的控件使用方式类似,这里就不做详细介绍。


以上是我在这个工具开发的过程中使用方式和步骤,难免不出现问题和不足,望各位朋友指出勘正。


在使用过程中,遇到对lob对象的处理问题,不能将lob对象数据写入至数据库,望有这方面经验的朋友指正帮忙。


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台