当前位置:软件学习 > 其它软件 >>

多客户访问同一数据问题

我有一个以上的客户端在操作同一数据库(数据库放在一台独立的服务器上),如何保证每个客户会修改最新的数据而不是历史数据。
如:一个数据原来是2000,A用户此时提取此数据看到的是2000,B用户此时提取此数据看到的是2000,
如果A先将数据2000修改为2500,而此时B用户手上拿到的还是过期数据2000,如果B进行修改则是在2000的基础上进行的,我要保证B是在2500的基础上进行修改。

问:有什么好的方法使B客户在修改时得到仍然是最新的数据2500。
说明实现思路,和用到的技术,如果是C#。无论是CS结构还是BS结构都有这个问题。
前提是允许多用户操作同一数据的。 --------------------编程问答-------------------- 除非访问加锁
操作上一般是马上更新的,如有巧合,只能加锁单独操作同一表
--------------------编程问答-------------------- 读一个数据都要加锁,这软件性能怎么保证?
访问加锁,没有可行性 --------------------编程问答-------------------- 首先要看是应该在什么类型的系统中,如果是类似售票系统,
那可以分成两步:1.查询  2.提交
1.查询和普通的一样,如果要实时性比较高,比如春节放假去车站买票的情况.那就在客户查询后,定时去服务器查询返回结果.
2.提交 提交时要发送两个数据,读取的值和修改后的值.
       在服务器上建一个存储过程,保存原子性,首先读取数据库,是否和原来的值相同?相同则修改数据.
       不同,返回最新的结果,让客户确认是否修改.
--------------------编程问答-------------------- 修改数据的WHERE中加上原数据的值为条件,根据SQL的返回值来判断,返回值表示没有更新相关记录的,客户端就提示“数据已被修改,无法更新,是否需要重新读取?” --------------------编程问答-------------------- 这个刻个办法可以一试
引用 4 楼 yanlongwuhui 的回复:
修改数据的WHERE中加上原数据的值为条件,根据SQL的返回值来判断,返回值表示没有更新相关记录的,客户端就提示“数据已被修改,无法更新,是否需要重新读取?”
--------------------编程问答--------------------
补充:企业软件 ,  企业信息化
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,