delphi 的 LockType 锁类型
LockType 锁类型
常数 值 说明
adLockReadOnly 1 只读(默认)
adLockPessimistic 2 悲观锁
adLockOptimistic 3 乐观锁
adLockBatchOptimistic 4 乐观批更新
为了实现多个用户同时对同一信息的访问,就出现了锁技术.通常设为只读时,多个用户的访问就毫无问题.
如果一个用户或多个用户要编辑数据,当多个用户同时对同一记录进行改动时,就需要一种锁类型来存储改动.锁暂时的限制了对记录的访问.当记录加上锁后,某一时刻就只有一个用户可以访问那条记录,其他用户必须等到锁解除后才能访问.
"悲观"和"乐观"是锁的两种基本类型.设为乐观锁时,多个用户可以同时访问和编辑数据.设为悲观锁时,如果一个用户首先进行编辑记录,那么其他用户就看不到数据,甚至数据提供者也不能看数据,其他用户编辑记录的时间就要延迟,直至第一个用户操作完毕为止.
adLockBatchOptimisitc只能和游标类型adOpenkeyset一起使用,使用时不会立即把更新过的记录写入数据源中,而是把对许多记录的改动先放在客户端中,然后把更新过的记录一齐写入数据源中,或者一齐取消掉.
CursorType 游标类型
记录集内游标类型的移动只限于以下两种:
adOpenForwordOnly:一次只能向前移动一行.
adOpenKeyset、adOpenDynamic和adOpenStatic:可以移动到记录集的任何位置.
记录集的添加、更改和删除:
A.adOpenForwardOnly和adOpenStatic:这两种游标类型不允许进行添加、更改和删除操作。
它们表示创建记录集时数据的一个快照。用户对数据的操作不会反映到数据源中.adOpenStatict比adOpenForwardOnly具有更大的灵活性,因为前者允许向任意方向移动。
B.adOpenKeyset:它允许向各个方向移动,还允许更改记录集.使用adOpenKeyset的记录集可以识别所有数据源的记录,也就是用户能看到其他人更改的记录.但是其他人删除或添加
的记录并不能反映出来.
C.adOpenDynamic:使用adOpenDynamic的记录集允许所有的操作,其他人所作的添加、更改
和删除的记录都能被用户看到.
adOpenKeyset要求创建的记录对于记录集中的每条记录都要有唯一的关键字。
delphi 的 LockType 锁类型的更多相关文章
- C++:CursorType光标类型 和 LockType锁定类型
简要: CursorType光标类型: 1. AdOpenForwardOnly (默认值)一次只能向前移动一行. 2. AdOpenKeyset 打开键集类型游标. 3. AdO ...
- Delphi TcxTreeList 读取 TcxImageComboBoxItem类型的值
Delphi TcxTreeList 读取 TcxImageComboBoxItem类型的值: Node.Values[wiNodeLevel.ItemIndex]://值 Node.Texts[ ...
- Oracle数据库的锁类型
Oracle数据库的锁类型 博客分类: oracle Oracle数据库的锁类型 根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护 ...
- SQL Server锁类型
SQL Server锁类型(SQL)收藏 1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个选项生 ...
- c#数据库事务锁类型
一.脏读.不可重复读.幻象读的区别 1.脏读:包含未提交数据的读取.例如,事务 a 更改了某行(数据库已发生更改,但尚未提交,有可能发生回滚),事务 b 在事务 a 提交更改之前读取已更改的行.如 ...
- java锁类型
转载链接在每个锁类型后边 线程锁类型 1.自旋锁 ,自旋,jvm默认是10次吧,有jvm自己控制.for去争取锁 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchroni ...
- sql 锁类型与锁机制 转
SQL Server锁类型(SQL)收藏1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个 ...
- sql 锁类型与锁机制
SQL Server锁类型(SQL)收藏1. HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁. 2. NOLOCK:不添加共享锁和排它锁,当这个选项 ...
- 关于MySQL的TinyInt数据类型在Delphi中作为Boolean类型的一个要注意的问题
关于MySQL的TinyInt数据类型在Delphi中作为Boolean类型的一个要注意的问题: 在定义TinyInt类型字段时,若要作为Delphi中作为Boolean类型,则该字段的长度必须为1!
随机推荐
- HIS系统结算后,没有更新单据状态为“已结算”
1.由于查询单据有个参数:时间,而应用服务器和数据库服务器存在时间差,经比对,数据库服务器时间要快7秒 2.应用服务器查询单据,根据当前时间去查,但是由于数据库服务器要快7秒,导致查询不出数据. 总结 ...
- ubuntu 安装json
命令行中输入:sudo apt-get install libjsoncpp-dev
- Python 远程桌面协议RDPY简介
转载请注明:@小五义http://www.cnblogs.com/xiaowuyiQQ群:64770604 RDPY 是基于 Twisted Python 实现的微软 RDP 远程桌面协议. RDPY ...
- 搭建mysql cluster
虚拟机搭建Mysql Cluster 参考文档:http://www.cnblogs.com/jackluo/archive/2013/01/19/2868152.html http://www.cn ...
- Ionic app 通知在Moto 360 Watch上显示通知(1)
手机与Moto 360 watch配对之后,watch上会接收到微信消息的通知,那么我们就可以利用这个特性开发一个App,在Watch显示我们自己的通知,具体过程如下 1.手机扫描二维码安装ticwa ...
- 在平衡树的海洋中畅游(四)——FHQ Treap
Preface 关于那些比较基础的平衡树我想我之前已经介绍的已经挺多了. 但是像Treap,Splay这样的旋转平衡树码亮太大,而像替罪羊树这样的重量平衡树却没有什么实际意义. 然而类似于SBT,AV ...
- jinja2模块使用教程
模板 要了解jinja2,那么需要先理解模板的概念.模板在Python的web开发中广泛使用,它能够有效的将业务逻辑和页面逻辑分开,使代码可读性增强.并且更加容易理解和维护. 模板简单来说就是一个其中 ...
- mysql操作命令梳理(2)-alter(update、insert)
在mysql运维操作中会经常使用到alter这个修改表的命令,alter tables允许修改一个现有表的结构,比如增加或删除列.创造或消去索引.改变现有列的类型.或重新命名列或表本身,也能改变表的注 ...
- SQL Server扩充表字段长度,引发的意外KILLED/ROLLBACK
这一段时间,因为系统升级,新系统产生的数据长度,比原来的数据长度要长,所以说要扩充一下字段长度. ) --修改字段长度sql 在执行的时候,有这样一个情况. 例如Student表的Name字段长度是n ...
- Java8之集合排序
1,List<Map<String,Object>>格式 //排序 Comparator<Map<String, Object>> comparator ...