谁能帮我详细的说明一下RecordSet的Locktype属性或者它的参考资料.

解决方案 »

  1.   

    LockType
    Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:常数常数值说明
    adLockReadOnly1缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法
    adLockPrssimistic2当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性
    adLockOptimistic3当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作
    adLockBatchOptimistic4当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作
      

  2.   

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