有A,B两个用户,同时更新SQL数据库里的同一个表中的同一个记录的2个不同的字段。如A更新fieldA,B更新fieldB.FieldA和FieldB是属于同一条记录的.A更改好以后,先Post,这是没有问题的,但是当B也要post时,问题出现了,提示出错。请问是否有好办法,当A,B两人同时更改同一记录的不同字段时,可以不出错,并且在他们post以后,当第三个人C在访问这条记录时,显示A,B更新以后的记录呢?谢谢大家的帮忙!

解决方案 »

  1.   

    如果你用Query,
    请设置
    Query.UpdateMode:=upWhereChanged
    //or
    Query.UpdateMode:=upWhereKeyOnly
    其他的Dataset也有这个属性
      

  2.   

    我用的是adoquery,好像没有这个属性UPDATEMODE,是否还有其他可行的办法?
      

  3.   

    进行当前记录的锁定。用Dataset就可以,属性是LockType。具体值有五种。
    LtUnspectfied 没有指定锁的类型
    LtReadOnly 当前的执行不能修改数据
    LtPesssimistic 当将一条记录置为编辑状态时为该记录加锁
    LtOptimistic 当更新操作应用于一条记录时才为该记录加锁
    LtBatchOptimistic 批处理锁