none
ERP管理软件中数据同步 RRS feed

  • 问题

  • 在开发ERP管理软件过程中,有一种类似于数据库中的“赃读”情况。请问各位同仁如何解决的,给点提示或意见!如:两个使用者,在两台电脑中调出同一功能后(打开一个WinForm),将查询的结果集加载到DataGridView,此处假设他们查询的结集集是一致的。现在的问题是,如果其中一个操作者,修改了结果集中的数据,另一个操作者在稍迟一段时间后,在操作该数据集时,数据已经被第一个操作者修改了。第二个操作者修改的数据就已经是不存在的数据了。。请问这种类似于赃读的情况,怎么解决呢?在开发管理软件的过程中,肯定会遇到这种情况的。
    2011年4月5日 1:25

答案

  • 这个问题在很早就有解决办法了,就是记录的版本。

    sql server 以前是(2000版本前)使用的是时间戳 ,2005后使用rowversion来管理。

    具体可以搜索或者查看MSDN。


    family as water
    • 已建议为答案 mazhou 2011年4月5日 9:03
    • 已标记为答案 Cookie Luo 2011年4月13日 9:13
    2011年4月5日 2:13
  • 补充一句,这是两种处理并发冲突的方案之一。对于两种方案,即乐观锁和消极锁,ADO.NET 均支持的,除了从 SQL Server 增加 ROWVERSION 外,也可以启用 Tracking。详细的操作方法,请参考 MSDN 中的 Concurrent Conflict 信息。
    Mark Zhou
    • 已标记为答案 Cookie Luo 2011年4月13日 9:13
    2011年4月5日 9:05

全部回复

  • 这个问题在很早就有解决办法了,就是记录的版本。

    sql server 以前是(2000版本前)使用的是时间戳 ,2005后使用rowversion来管理。

    具体可以搜索或者查看MSDN。


    family as water
    • 已建议为答案 mazhou 2011年4月5日 9:03
    • 已标记为答案 Cookie Luo 2011年4月13日 9:13
    2011年4月5日 2:13
  • 补充一句,这是两种处理并发冲突的方案之一。对于两种方案,即乐观锁和消极锁,ADO.NET 均支持的,除了从 SQL Server 增加 ROWVERSION 外,也可以启用 Tracking。详细的操作方法,请参考 MSDN 中的 Concurrent Conflict 信息。
    Mark Zhou
    • 已标记为答案 Cookie Luo 2011年4月13日 9:13
    2011年4月5日 9:05