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 ...
随机推荐
- Oracle的下载安装教程以及所出现的问题
1.下载地址 64位 https://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft ...
- 001-http协议-请求报文以及服务器响应状态
Http协议的几个概念: 1.连接(Connection):浏览器和服务器之间传输数据的通道. 一般请求完毕就关闭,http不保持连接.不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就 ...
- windows Server2012 IIS8.0配置安装完整教程
IIS8.0是windows Server2012自带的服务器管理系统,和以往不同,IIS8.0安装和操作都比较简单,界面很简洁,安装也很迅速.今天我们重点完整的演示下Internet Informa ...
- JavaScript <script>标签的位置、延迟脚本(defer属性)与 异步脚本(async属性)
一.<script>标签的位置 传统的做法是将<script>元素放在<head>元素中,例如: <!DOCTYPE html><html > ...
- Mysql Federated For Windows
[1]windows环境下打开federated (1)关闭.命令:mysql> net stop mysql (2)添加federated字段.在my.ini文件中添加一个字段,注意位于[my ...
- 解决caffe绘制训练过程的loss和accuracy曲线时候报错:paste: aux4.txt: 没有那个文件或目录 rm: 无法删除"aux4.txt": 没有那个文件或目录
我用的是faster-rcnn,在绘制训练过程的loss和accuracy曲线时候,抛出如下错误,在网上查找无数大牛博客后无果,自己稍微看了下代码,发现,extract_seconds.py文件的 g ...
- Linux基础命令---arch
Arch Arch指令主要用于显示当前主机的硬件结构类型,我们可以看到它输出的结果有:i386.i486.mips.alpha等.此命令的适用范围:RedHat.RHEL.Ubuntu ...
- ajax 检测用户名是否可用
下面是一个 ajax 检测用户名是否可用的例子. django 项目中. —— views.py 里—— from django.shortcuts import render,HttpRespon ...
- oracle 如何将一个字段内容拆分多行显示
例子: select regexp_substr('1,2,3,4,5', '[^,]+', 1, level)from dualconnect by level <= regexp_count ...
- How to solve the problem that BMW Icom A2 A3 host can’t be connected?
Aftre the BMW ICOM host is connected to the car via a 16PIN connector, and the other side is connect ...