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!
随机推荐
- 纯html页面中js如何获得项目路径
js,全称javascript,不过虽然是以java开头,不过与java一点关系都没有. js和java有如下区别: (1)js是浏览器端的语言,而java是服务器端的语言. (2)js是动态语言,j ...
- 专业语音芯片MT8516 华为AM08蓝牙音箱
天猫精灵和亚马逊专用的语音芯片哦!联发科! 华为AM08蓝牙音箱 WT51F5161T的8052 微处理器,RC内振12MHz,具有16Kx8 的flash,硬件IIC,SPI,CEC,IR,RTC, ...
- Android学习之基础知识十三 — 四大组件之服务详解第一讲
一.服务是什么 服务(Service)是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要求长期运行的任务.服务的运行不依赖于任何用户界面,即使程序被切换到后台, ...
- <转>jmeter(十四)HTTP请求之content-type
本博客转载自:http://www.cnblogs.com/dinghanhua/p/5646435.html 个人感觉不错,对jmeter最常用的取样器http请求需要用到的信息头管理器做了很好的解 ...
- Java的运算符--与(&)、非(~)、或(|)、异或(^)详解
一.计算机中存储的都是补码 java也是如此: System.out.println(Integer.toBinaryString(2)); System.out.println(Integer.to ...
- linux中yum与rpm区别
一.源代码形式 1. 绝大多数开源软件都是直接以原码形式发布的 2. 源代码一般会被打成.tar.gz的归档压缩文件 3. 源代码需要编译成为二进制形式之后才能够运行使用 ...
- jquery ajax超时设置(转载)
var ajaxTimeoutTest = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : 'get', //请求方式,g ...
- angularjs呼叫Web API
今早有分享一篇<创建Web API并使用>http://www.cnblogs.com/insus/p/7771428.html 接下来,我再分享一篇,怎样在angularjs去呼叫Web ...
- 在WPF中使用Caliburn.Micro搭建MEF插件化开发框架
原文:在WPF中使用Caliburn.Micro搭建MEF插件化开发框架 版权声明:原创内容转载必须注明出处,否则追究相关责任. https://blog.csdn.net/qq_36663276/a ...
- AutoMapper自动映射
十年河东,十年河西,莫欺少年穷. 学无止境,精益求精. 不扯犊子,直接进入正题: AutoMapper自动映射常用于EF中,能很好的解决DTO和Model之间相互映射的问题.在未使用AutoMappe ...