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!
随机推荐
- glVertexAttribPointer 用法简介
在内存中采用交叉模式存储,向gpu传入顶点数据的方法 GPU: #version 100 attribute highp vec2 aPosition; attribute highp vec2 a ...
- springzuul实现限流
限流描述 https://www.cnblogs.com/LBSer/p/4083131.html 第一步添加pom文件 <!--限流--> <dependency> < ...
- AI 正则化
正则化,是减少泛化误差的技术.
- mysql导出CSV格式的文件
select * from Account into outfile "/tmp/haha.csv" fields terminated by ',' lines term ...
- 1-添加自己的Lua执行函数(ESP8266-SDK开发(lua版本))
基础 lua_pushnumber (L, 1); lua_pushnumber (L,3); lua_pushnumber (L,4); return 3; c_sprintf(temp, &quo ...
- WPF,ListView设置分组
原文:WPF,ListView设置分组 今天遇到一个问题,就是在ListView中设置分组.想了很久在网上早了些资料作出一个例子. 分组字段也可以在后台中定义: CollectionView view ...
- WPF中反转3D列表项
原文:WPF中反转3D列表项 WPF中反转3D列表项 周银辉记得在苹果电脑中有一个很酷的 ...
- Luogu P1337 [JSOI2004]平衡点 / 吊打XXX
一道入门模拟退火的经典题,还是很考验RP的 首先我们发现神TM这道题又和物理扯上了关系,其实是一道求广义费马点的题目 首先我们可以根据物理知识得到,当系统处于平衡状态时,系统的总能量最小 又此时系统的 ...
- Unity接入Steamworks
一.将scrpts/Steamworks.net/SteamManager组件添加到游戏物体上 二.修改SteamManager的代码为游戏的id如图所示 三.Unity,打开项目根目录,修改stea ...
- SpringBoot笔记--FastJson
FastJson配置 ObjectId class ObjectIdSerializer : ObjectSerializer { override fun write(serializer: JSO ...