锁定数据记录

简介: 锁定数据记录 ADO组件有一个非常好的属性LockType,可用于锁定记录,这样当一个更新开始之前可以去检查这个属性,如果还在锁定状态,则需要等待,以避免更新冲突.该属性具体说明如下:LockType 属性      指示编辑过程中对记录使用的锁定类型。
锁定数据记录

ADO组件有一个非常好的属性LockType,可用于锁定记录,这样当一个更新开始之前可以去检查这个属性,如果还在锁定状态,则需要等待,以避免更新冲突.该属性具体说明如下:

LockType 属性      

指示编辑过程中对记录使用的锁定类型。

设置和返回值

设置或返回以下某个 LockTypeEnum 的值。

常量 说明
adLockReadOnly 默认值,只读。无法更改数据。
adLockPessimistic 保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。
adLockOptimistic 开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。
adLockBatchOptimistic 开放式批更新。用于与立即更新模式相反的批更新模式。


说明

打开 Recordset 前设置 LockType 属性可指定打开时提供者应该使用的锁定类型。读取该属性可返回在打开的 Recordset 对象上正在使用的锁定类型。Recordset 关闭时 LockType 属性为读/写,打开时该属性为只读。

提供者可能不支持所有的锁定类型。如果某提供者不支持所需的 LockType 设置,则将替换为其他类型的锁定。要确定 Recordset 对象可用的实际锁定功能,请通过 adUpdate 和 adUpdateBatch 使用 Supports 方法。

如果 CursorLocation 属性被设置为 adUseClient,将不支持 adLockPessimistic 设置。设置不支持的值不会产生错误,因为此时将使用支持的最接近的 LockType 的值。

远程数据服务用法   当在客户端 (ADOR) 的 Recordset 对象上使用时,LockType 属性只能设置为 adLockOptimisticBatch。

注:
    更新数据前最后使用事务:
    ADOConnection.BeginTrans;                  // 开始一个事务
    try
      // 在这里写更新数据库语句.
      ADOConnection.CommitTrans            // 提交一个事务
    except
       ADOConnection.RollbackTrans;        // 事务失败则回滚事务,放弃所有更新操作
    end;


相关文章
|
关系型数据库 MySQL 数据库
InnoDB事务和锁定信息:如何识别和解决阻塞查询问题
InnoDB事务和锁定信息:如何识别和解决阻塞查询问题
|
8月前
|
缓存 数据库
并发修改同一记录时需要加锁
并发修改同一记录时需要加锁
|
4月前
锁记录
锁记录
142 72
|
8月前
|
iOS开发
如何让你的应用在后台可以继续处理未完事务
如何让你的应用在后台可以继续处理未完事务
65 1
|
8月前
|
JavaScript
记录一些报错记录
记录一些报错记录
62 0
|
安全
服务器被锁定
服务器被锁定
187 0
|
定位技术
定位锁定方法
定位锁定方法
249 0
定位锁定方法
日志文件锁定问题
日志文件锁定问题
140 0
|
SQL 数据库
数据库页已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。
错误提示: 消息 829,级别 21,状态 1,第 1 行 数据库 ID 15,页 (1:21826) 已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。 引起原因: RestorePending一般是在进行页恢复的过程中出现的,就是在进行了restore操作之后但还没有进行recovery操作之前页的状态。
2532 0
|
JavaScript BI 数据库
巧用标志字段实现填报数据的暂存与锁定
<br>用户页面端数据录入时,由于数据的不确定性,通常会需要将数据暂存而不真正入库,类似草稿功能,等能确保数据准确时再进行数据入库操作,来乾学院看看如果简单的通过一个标志字段实现数据的暂存与锁定。<a href="http://c.
1147 0