使用哪种锁可让其他客户端无法提取我已提取的记录,但可以提取其他记录和对表进行添加删除修改等操作

解决方案 »

  1.   

    recordset 的 LockType 属性
          指示编辑过程中对记录使用的锁定类型。设置和返回值设置或返回以下某个 LockTypeEnum 的值。常量 说明 
    adLockReadOnly 默认值,只读。无法更改数据。 
    adLockPessimistic 保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。 
    adLockOptimistic 开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。 
    adLockBatchOptimistic 开放式批更新。用于与立即更新模式相反的批更新模式。 
    说明打开 Recordset 前设置 LockType 属性可指定打开时提供者应该使用的锁定类型。读取该属性可返回在打开的 Recordset 对象上正在使用的锁定类型。Recordset 关闭时 LockType 属性为读/写,打开时该属性为只读。提供者可能不支持所有的锁定类型。如果某提供者不支持所需的 LockType 设置,则将替换为其他类型的锁定。要确定 Recordset 对象可用的实际锁定功能,请通过 adUpdate 和 adUpdateBatch 使用 Supports 方法。如果 CursorLocation 属性被设置为 adUseClient,将不支持 adLockPessimistic 设置。设置不支持的值不会产生错误,因为此时将使用支持的最接近的 LockType 的值。
      

  2.   

    如 :A提取记录时用select * from tbname with(xlock) where...
         B提取记录时使用服务器端游标,然后 select * from tbname with(readpast) ,则提取出的记录中不包含 A 提取的记录 ,并可做添加删除等操作