定义RecordSet 行为的属性
RecordSet 对象属性中最有影响力的应该是LockType吧!(至少我这么认为,xixi)
在任何同时可被多用户修改的数据库应用程序中,你必须处理可能发生的多个用户同时对同一条记录进行操作时的情况。当这种情况出现时,数据的完整性就会受到威胁,这是因为一个用户可能会在不自觉地在保存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有做事。
为了处理这种情况。ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型,当一个用户编辑时,如何由他对记录进行锁定。这就是由LockType属性所决定的。这个属性有四个值,但基本的选择项只有两个:乐观锁定和悲观锁定(本人是学经济的,xixi)
.adLockReadonly
这是RecodSet的默认值,如果你把锁定的方式设为该值,那么你将不能更新Recordset。也就是说如果你不更改RecordSet的锁定属性值,你就不能更新数据!
.adLockPessimistic
如果设置为此类锁定,你可以用悲观锁定制式编辑记录,这就是说,记录被锁定,且只有在编辑开始到将记录更新的提交给数据提供者这段时间内进行编辑的用户才可以访问it!
.adLockOptimistic
这就是乐观锁定制式,只有在将数据提交给数据提供者的那一瞬间才把记录锁定。若在乐观锁定保存记录时发生的任何问题,都可以查看RecordSet状态属性,以决定问题的性质,并在以后的处理中采取一些措施来解决!
.adlockBatchOptimistic
如果你把RecordSet的Locktype设置为这个,那么就会导致将在同时多次更新数据提供者的乐观锁定制式。通常你会发现设定为这种类型的锁定制式将被称为批量更新模式的RecordSet。
可以加快更新RecordSet修改数据的速度,但因为同时更新多个记录,它也会恶化与并发访问相关的问题!
需要注意的是,并非所有的数据源都会允许每种类型游标使用这些锁定制式。因此,如果RecordSet属性是数据源不允许用于一类游标的,那么将改变RecordSet的CursorType.
PS.关于CursorType我下次再敲好了!