ODAC(V9.5.15) 学习笔记(一)总论
一直在使用ODAC做开发,没时间仔细研究一下,目前采用的是3层结构,ODAC+TDataSetProvider+TClientDataSet做数据处理,也没有多大问题。下一步要开发B/S的程序了,打算用ODAC+uniGUI来完成,数据处理上其实可以按照2层结构,相比3层结构要简单些,性能预计也要好些。所以需要仔细研究一下ODAC的功能。岁数大了,做个笔记免得忘了。以下大部分材料来自于ODAC的帮助文件,E文不是太好,只能大概了解意思,难免有错,阅读和使用时需要进一步核实。
1.1. 简介
ODAC(Oracle Data Access Components)是RAD下用于直接访问Oracle数据库的专用控件组。其最大的特点是:可以不用安装Oracle客户端就能够直接访问Oracle数据库,并对Oracle数据库中的众多特色功能进行了封装。
ODAC目前最新版本为9.5.15,本文以此版本为基础进行介绍。该版本支持Delphi、C++Builder和Lazarus下的多个版本,支持VCL或FMX控件。该版本对直接访问模式(Direct mode)进行了开源。开发的软件支持Android、IOS、Windows32/64等多个平台。不过我们开发的与Oracle相关的程序,一般是C/S/S或B/S架构的服务器端程序,所以只考虑Windows32/64平台下的开发。
ODAC采用了原生态的网络连接(TCP/IP)与Oracle服务器通信(Direct mode),越过了Oracle的客户端程序,性能更加优越。当然为稳定也可以使用Oracle的客户端连接。
1.2. 特点
按照官方文件说明,ODAC的9.5.15版主要具有以下特点:
1、 Direct模式下可以直接访问Oracle数据库,不需要安装Oracle客户端,不需要BDE或ODBC等数据库客户端引擎,安装和部署更方便。
2、 支持目前Oracle的所有服务器版本,包括12c、11g、10g、9i、8i、8.0、7.3,支持Oracle简化版(Oracle Express Edition 11g/10g)。
3、 支持数据离线模式(Disconnected Mode),在数据缓冲到客户端后,可以断开与服务器的连接,以减少Oracle服务器资源的开销,所有操作在本地内存中完成,当需要提交数据时重新连接Oracle服务器。
4、 支持所有数据类型的本地索引和过滤,包括计算字段和Lookup字段。
5、 自动进行数据更新,包括ODAC自动生成的更新SQL或自定义的SQL,能够自动提交到数据库服务器,或缓冲模式下手工提交到数据库。
6、 支持SQL脚本执行,这样一来很多升级脚本可以通过软件自动运行了。
7、 支持对包(Package)的封装和运行。只需要一个控件就可以控制一个包中所有过程和函数的执行了。
8、 支持失效备援模式(Transparent application failover ,TAF)当数据库连接因各种原因断开(最常见的是网络原因),ODAC能够自动进行重新连接并确保客户端数据不丢失,相比传统2层架构软件的数据库连接有巨大优势。
9、 支持SQL语句的监控,即SQLMonitor。
10、 支持内存表,可以在客户端内存中建立数据表进行操作。
11、 支持Oracle的消息队列功能。
12、 其他功能,如分布式事务处理、双字节字符处理等。
ODAC(V9.5.15) 学习笔记(一)总论的更多相关文章
- ODAC(V9.5.15) 学习笔记(三)TOraSession(3)
3. 选项 TOraSession的Options有如下内容 名称 类型 说明 CharLength TCharLength 单个字符的长度,缺省0,表示从服务器获取对应的字符集中单个字符长度 Cha ...
- ODAC (V9.5.15) 学习笔记(二十)大数据量获取处理
ODAC获取数据的效率比较高,在Web程序中希望能够更快获取第一页的数据时,可以有几种方式: 1.在数据库中进行分页处理: 2.获取所有数据,只是快速返回第一页数据. 第一种方案对应用服务器资源消耗最 ...
- ODAC(V9.5.15) 学习笔记(十九)主键值自动生成
ODAC支持通过Oracle的序列来自动生成表的主键功能.这个过程允许在客户端自动完成,不需要过多代码.这个对一些要求自动增长字段做主键的场合非常有用.其实现步骤为: 1.数据库必须先建立生成主键的序 ...
- ODAC(V9.5.15) 学习笔记(十八) 数据集缓冲模式
数据集的缓冲模式(Cached mode)是将数据库服务器的数据缓冲在客户端内存中进行处理,不再依赖服务器.只有当数据需要提交数据库服务器进行保存时,才将变更数据一次性提交数据库服务器. 数据集缓冲模 ...
- ODAC(V9.5.15) 学习笔记(十七)主从模式
主从模式(Master/Detail mode)是指建立主表和从表关系的多个数据集集合模式. 1. 关系设置 要设置主从模式,必须有一个主表数据集(TDataSet)和一个从表数据集(TDataSet ...
- ODAC(V9.5.15) 学习笔记(十六)直接访问模式
直接访问模式(Direct mode)是ODAC最大的特色之一,即不需要安装Oracle客户端,ODAC越过了OCI(Oracle Call Interface ),使用TCP/IP协议就可以直接与O ...
- ODAC(V9.5.15) 学习笔记(十五)数据离线模式
数据离线模式(Disconnected Mode)是指数据库只有在需要的时候才连接,数据的处理放在客户端内存缓冲区中完成.这样做最大的好处是减少了网络资源依赖,对数据库服务器的资源开销和压力也减少.如 ...
- ODAC(V9.5.15) 学习笔记(四)TOraDataSet
名称 类型 说明 SequenceMode TSequenceMode ODAC可以直接利用Oracle中的序列对象为表的主键赋值,从而实现主键自动增长的功能.该属性决定了在什么场合下使用序列: sm ...
- ODAC(V9.5.15) 学习笔记(四)TCustomDADataSet(4)
6.Options TCustomDADataSet的选择项为TDADataSetOptions,其成员介绍如下表 : 名称 类型 说明 TDADataSetOptions AutoPrepare B ...
随机推荐
- JAVA8函数式接口
java8 中内置的四大核心函数接口** Consumer<T> :消费型接口* void accept(T t)* Supplier<T> :供给型接口* T get()** ...
- LeetCode122.买卖股票的最佳时机II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你必须在再次 ...
- django-pagination 样式修改
默认 django-pagination 样式: 使用bootstrap后样式: (有些瑕疵,下面来完善一下) 修改后: 效果还不错吧.那么讲下如何修改. 首先找到其源码: (路径:site-pac ...
- 09 查找列表中元素,移除每个元素的空格,并查找以a或A开头并且以c结尾的所有元素
li = ["alex"," aric","Alex","Tony","rain"]for i in ...
- uva11990 动态逆序对
这题说的是给了一个数组,按照他给的顺序依次删除数,在删除之前输出此时的逆序对个数 我们用Fenwick树 维护这整个数列, C[i]是一个 treap的头, 管理了在树状数组中 能影响他的点,然后我们 ...
- codeforces 980A Links and Pearls
题意: 有珍珠和线,问能否重新安排使得相邻珍珠之间的线的数量相等. 思路: 首先,珍珠为0或者线为0,那么都满足条件: 其次,如果珍珠的个数大于线的个数,那么肯定不满足条件: 然后,如果线的个数能够被 ...
- 关于poi导出excel方式HSSFWorkbook(xls).XSSFWorkbook(xlsx).SXSSFWorkbook.csv的总结
1.HSSFWorkbook(xls) import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermo ...
- (Review cs231n) Gradient Vectorized
注意: 1.每次更新,都要进行一次完整的forward和backward,想要进行更新,需要梯度,所以你需要前馈样本,马上反向求导,得到梯度,然后根据求得的梯度进行权值微调,完成权值更新. 2.前馈得 ...
- Linux基础命令---修改用户密码
passwd 更改用户密码,超级用户可以修改所有用户密码,普通用户只能修改自己的密码.这个任务是通过调用LinuxPAM和LibuserAPI来完成的.本质上,它使用LinuxPAM将自己初始化为一个 ...
- 20165316 技能学习心得与c语言学习
20165316 技能学习心得与c语言学习 一.技能学习经验 我会打乒乓球,在中国,我只能说我"会"打,至于"比大多数人更好"我不敢断言,因为我无时无刻不感受到 ...