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!
随机推荐
- mybatis基础系列(三)——动态sql
本文是Mybatis基础系列的第三篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(二)--基础语法.别名.输入映射.输出映射 mybatis基础系列(一)--mybatis入门 动态 ...
- leetcode 112. Path Sum 、 113. Path Sum II 、437. Path Sum III
112. Path Sum 自己的一个错误写法: class Solution { public: bool hasPathSum(TreeNode* root, int sum) { if(root ...
- Opencv——相机标定
相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像. 相机标定的输入:标定图像上所有内角 ...
- C++多线程的使用
很多的时候会遇到多线程跑 ,接下来就写了一个 多线程的demo 废话不说直接上代码 #include <iostream> #include <pthread.h> //多线 ...
- 初学Python,对于开发工具不是很了解?一文带你选择适合你的开发工具
工欲善其事必先利其器!想要获取更多的开发工具安装包.安装教程,可以加群:725479218, 开发Python用什么工具好呢?其实刚学Python的话,使用IDLE就够了,虽然调试不是特别方便,但是对 ...
- 初识Identity(二)
本文参考了[ASP.NET Identity系列教程(一)]ASP.NET Identity入门 一.Identity使用前准备项目 本文创建了一个名称为Users的项目.在创建过程中选择了“Empt ...
- [Oracle][Partition][Controlfile]Partition 操作是否和 Controlfile有关?
Partition 操作是否和 Controlfile有关? 通过实验来判断: 对比 Partition 前后的操作,看看controlfile 的dump 信息中是否有记录,结果发现没有记录在 co ...
- 记一次用WPScan辅助渗透WordPress站点
记一次用WPScan辅助渗透WordPress站点 一.什么是WPScan? WPScan 是一个扫描 WordPress 漏洞的黑盒子扫描器,它可以为所有 Web 开发人员扫描 WordPress ...
- Linux系统入门教程:如何在 Linux 中修改默认的 Java 版本
提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...
- php类之clone 克隆
对象也能被“克隆” 在php5中,对象的传递方式默认为引用传递,如果我们想要在内存中生成两个一样的对象或者创建一个对象的副本,这时可以使用“克隆”. 通过 clone 克隆一个对象 对象的复制是通过关 ...