做一个服务器,多个客户端的 项目,在写sql语句的时候,是不是涉及到增,删,改的操作都需要加上锁,另外还有什么需要注意的,希望大家不惜赐教

解决方案 »

  1.   

    1楼的 说的有点欠妥...数据的锁是在读取和修改的瞬间加的...因为不能加太久,不然会影响效率而你修改之前必然要读取数据...除非你已经知道你要改的数据的值了做个假设:
    A和B同时读取一个值     A     B
    读取10     10
    修改+10    无操作
    提交=20    -10
    无操作      提交0最后的 结果就变成0了,我后面查了资料用存储过程解决了就是读取的时候就把记录用排他锁锁定,然后把修改操作和读取放在一个存储过程里边就行了
    我想你可能会遇到和我一样的问题吧...希望有用
      

  2.   

    b/s慎用静态全局变量
    static 
      

  3.   

    并发如何控制,比如有A,B两个客户端,同时打开了基本资料的窗口
    A: 做了一些修改,点击保存(操作成功,因为此时B并没有修改)
    B: 在A修改后也做了一些修改,点击保存,此时会出错,提示影响了数据库的并发性希望大家赐教
      

  4.   

    上面说的不是很准确
    具体情况是这样的:
    并发如何控制,比如有A,B两个客户端,同时打开了基本资料的窗口
    A: 做了一些修改,点击保存(操作成功,因为此时B并没有修改)
    B: 在A修改后也做了一些修改,点击保存,此时有时候会出错,提示影响了数据库的并发性,但是有时候不出错,保存成功sql打了 sp4补丁
    是因为数据库的问题还是sql语句没有加锁
    希望大家赐教
    拜谢了