在实际DELPHI使用中我们发现,如两人同时操作SQL SERVER中数据的同一张表的同一条数据,则两人可以分别改行的不同列数据,但不可以改行的相同列数据。现在想如何设置使得,两个不可以改相同行的数据,即一个人提交后,第二个人在未下载新数据之前不得更改数据。

解决方案 »

  1.   

    帮你顶,我想sql server有它的处理方式
      

  2.   

    你这个问题SQLSERVER本身就可以解决.因为它本身就具有安全性机制.对并发操作是有控制的.
      

  3.   

    出现的问题打比方:现在有A,B,两个用户使用DELPHI的软件同时从SQL数据库上打开一个表。
    他们同时操作一表中的一条记录,如果A改字段1更新,B改字段2更新那么这在数据库上是可行的,
    如果A改字段1,B改字段1就会出问题,能不能设置锁定级别为行,那么在
    A改一条记录的字段1更新后,B如果改字段2的内容就无法更新,不知道各位明不明白我的意思
      

  4.   

    使用行锁,A改一条记录的字段1更新,此时B想更改字段2的内容只有等待A提交后才能改,否则这样的操作容易产生死锁。
      

  5.   

    如果你用TProvider来获取数据的话,把其UPDATEMODE改为UPWHEREALL,当A改完数据提交后,B是无法将数据提交上去的。至于数据库本身我知道有行锁的,不过不知道怎么实现,看高手。
      

  6.   

    在锁方法不得不说 InterBase 的方法。它的方很独特,每个锁有版本号,不同的版本号不相互影响
      

  7.   

    同意  shibowang()  的說法.
    SQL Server 自身有此功能.
    建議樓主試一下就知道!