有两台机器共用一个SQL SERVER2000的数据库,现在希望当机器A在打开数据库的表A时,机器B不能再对表A进行写操作,但可以读取,并且能得到相应的提示信息。大家帮忙看看,急呀

解决方案 »

  1.   

    recordset.Open Source, ActiveConnection, CursorType, LockType, OptionsLockType   可选。LockTypeEnum 值,确定打开 Recordset 时提供者应使用的锁定类型(并发)。默认值为 adLockReadOnly。
      

  2.   

    LockType 属性
    指示编辑过程中对记录使用的锁定类型。设置和返回值设置或返回以下某个 LockTypeEnum 的值。常量 说明 
    adLockReadOnly 默认值,只读。无法更改数据。 
    adLockPessimistic 保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。 
    adLockOptimistic 开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。 
    adLockBatchOptimistic 开放式批更新。用于与立即更新模式相反的批更新模式。 
    你的问题可以用adLockOptimistic 来进行(乐观)锁定
      

  3.   

    设置RecordSet锁定类型为只读,LockType=adLockReadOnly
    剩下的事,就由SQL SERVER来完成了,楼主你就不用费心啦,呵呵……
      

  4.   

    dim rs as recordset 
    rs.LockType=adLockReadOnly刚刚笔误,呵呵
      

  5.   

    不好用呀,怎么当机器A上的recordset处在OPEN状态时,B机器上的还是照样可以更改数据库呢
      

  6.   

    真的好用吗,但我为什么打开后仍然可能用SQL语句更新表呢
      

  7.   

    我是在查询分析器里写了个insert ,用VB做了个Recordset用adLockReadOnly锁的,但在查询分析器一样可以插入进去呀