Delphi连接Oracle控件ODAC的安装及使用
Delphi连接Oracle有很多种方式,但大多要在客户机上安装Oracle那庞大的客户端,比较不方便,使用ODAC控件连接Oracle则免去了这些麻烦。ODAC也是Oracle公司载发的控件。有for Delphi 6--Dephi 2007的版本。
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.80.0.47 for Delphi 7
编译及安装:在Project Manager对应的bpl上单击右键先Compile再Install
1、打开并编译安装Source\Delphi7\dac70.dpk
2、打开并编译安装Source\Delphi7\dacvcl70.dpk
3、打开并编译安装Source\Delphi7\dcldac70.dpk
4、打开并编译安装Source\Delphi7\odac70.dpk
5、打开并编译安装Source\Delphi7\odacvcl70.dpk
6、打开并编译安装Source\Delphi7\dclodac70.dpk
7、打开并编译安装Source\Delphi7\oraprov70.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数据库的连接。
当User、Password、Server属性设置好以后,你可以通过调用Connect方法或者设定Connected属性为True来建立一个与数据库的连接。
ODAC包含了以下组件:
所有要有数据访问的组件,像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
ODAC包含了以下组件:
TOraSession:控制服务连接;
TOraQuery:执行查询,操作记录集,灵活地更新数据库表;
TSmartQuery:与TOraQuery功能类似,可自动创建Insert、Delete、Update查询,自动锁定及更新记录;
TOraSQL:执行SQL语句,PL/SQL块,存储过程;
TOraPackage:允许执行包中的过程及函数以及变量;
TOraTable:允许不需要使用SQL语句来读取及更新单个表;
TOraStoredProc:执行存储过程和函数,允许编辑游标并可作为参数返回;
TOraNestedTable:控制嵌套表数据;
TOraProvider:提供从客户数据集进行数据及应用更新;
TOraScript:执行SQL及PL/SQL语句;
TOraAlerter:允许在两个会话中传送消息;
TOraLoader:快速装载Oracle数据库;
TOraSQLMonitor:允许监视执行基于ODAC应用程序中的动态SQL语句;
TOraErrorHandler:传送错误信息;
TBDESession:允许将ODAC集成到基于BDE的应用程序中;
TConnectDialog:用来输入用户名,口令及服务名;
TCRDBGrid:增强的TDBGrid,提供可视化的数据过滤及增量查询;
TVirtualTable:数据存储在内存中。
Delphi连接Oracle控件ODAC的安装及使用的更多相关文章
- Delphi连接Oracle控件ODAC的安装及使用(轉載)
Delphi连接Oracle控件ODAC的安装及使用 2010-08-13 01:13:37 标签:Oracle Delphi 控件 休闲 ODAC 原创作品,允许转载,转载时请务必以超链接形式标明 ...
- Delphi发布ActiveX控件 制作CAB包 数字签名相关
文件: SignTool.rar 大小: 84KB 下载: 下载 最近我正在研究ActiveX技术.我使用Delphi 7创建了一个具有ActiveForm的ActiveX控件应用程序.这个控件产生一 ...
- 制作用于日期时间型字段的DELPHI数据感知控件
用DELPHI开发C/S应用方便而快速,因为它拥有大量易于使用的数据访问和数据感知控件.然而万事总是难以完美,DELPHI的DBEdit控件用于输入日期时间型字段却很不方便,为了改善这一缺点,笔者开发 ...
- Delphi 开发ActiveX控件(非ActiveForm)
Delphi 开发ActiveX控件(非ActiveForm) Q:为什么不采用ActiveForm工程?通过它可以快速开发带窗体控件,创建过程也非常简单(都不用考虑安全接口问题),很省事! A:如果 ...
- Delphi 编写ActiveX控件(OCX控件)的知识和样例(有详细步骤)
一.ActiveX应用情况简介: ActiveX控件也就是一般所说的OCX控件,它是 ActiveX技术的一部分.ActiveX是微软公司推出的基于组件对象模型COM的技术,包括对Windows 32 ...
- Delphi的TListView控件拖放选定行操作
http://www.tansoo.cn/?p=401 Delphi的TListView控件拖放选定行操作的例子,效果图如下:TListView控件拖动选定行到指定位置 具体实现步骤: 一.新建一个D ...
- 用delphi的THTTPRIO控件调用了c#写的webservice。
用delphi的THTTPRIO控件调用了c#写的webservice. 下面是我调试时遇到的一些问题: 1,导入wsdl文件:file--new----other----wenservice---W ...
- 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应
http://blog.csdn.net/panjunbiao/article/details/8615880 用Delphi的TIdHttp控件发起POST请求和Java的Servlet响应
- Delphi创建ActiveX控件,实现安全接口及无界面代码
Delphi创建OCX控件非常的方便,但IE调用时弹出的安全认证非常麻烦,有时OCX也不需要界面,IE调用时需要隐藏,非常不方便.在DELPHI中创建OCX实现安全接口和创建事件中修改部分代码 实现安 ...
随机推荐
- 通过PHP自带的$_SERVER判断 自动识别移动设备
因为站点需要,手机端和PC端分离,所以通过PHP自带的$_SERVER判断 自动识别移动设备 代码如下: <?php $agent = $_SERVER['HTTP_USER_AGENT']; ...
- Mac下用java代码调用adb命令时出错
原本我直接这样写: Process process=Runtime.getRuntime().exec("adb devices"); 但是运行时出错: java.io.IOExc ...
- Codeforces Round #603 (Div. 2) C. Everyone is a Winner! (数学)
链接: https://codeforces.com/contest/1263/problem/C 题意: On the well-known testing system MathForces, a ...
- darw colorful more
- ABAP_DEMO篇33 SUM和COLLECT的用法
ABAP程序内表中的数量和金额字段 经常会需要合计, SUM和COLLECT 语法都能实现对数量和金额字段的合计. 1. SUM语法 ABAP中SUM语句比不上EXCEL里的强大:SUM只能在loo ...
- 验证码破解 | Selenium模拟登录知乎
import requests import re import execjs import time import hmac from hashlib import sha1 class Zhi ...
- Impala 架构探索-Impala 系统组成与使用调优
要好好使用 Impala 就得好好梳理一下他得结构以及他存在得一些问题或者需要注意得地方.本系列博客主要想记录一下对 Impala 架构梳理以及使用上的 workaround. Impala 简介 首 ...
- Powershell基础学习
从吐司偷来的图片,拿来当做引导吧: 0x01 简介 Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能.当然 ...
- java基础之 final
参考文档: 内存模型&final:http://www.infoq.com/cn/articles/java-memory-model-6/ 根据程序上下文环境,Java关键字final有 ...
- Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
Server Tomcat v9.0 Server at localhost was unable to start within 45 seconds. If the server requires ...