求VB6+SQL SERVER 多客户端 并发时 事务控制的资料或教材

解决方案 »

  1.   

    private sub command1_click()
    on error goto errhandle
        conn.begintrans    '开始事务
         conn.execute "insert into ..."
        conn.execute "update tablename set ..."
        conn.execute "delete from ..."
        conn.committrans   '提交事务
         exit sub
    '错误处理
    errhandle:
        conn.rollbacktrans    '出错回滚事务
         msgbox "操作失败,错误原因为:" & err.description,48,"提示"
        exit sub
     end sub
      

  2.   


    比如:老公(名A)和 老婆(名B)同时在两个银行网点用自已家唯一的银行帐户办理业务,
    1、A 存款5000 先读出余款是10000,而后存入5000, 对应的语句是 “update 帐户表  set 余额=15000”
    2、B 取出3000 选读出余款是10000,而后取款3000,对应的语句是  “update 帐户表  set 余额=7000”最终他们帐户里的余款可能是7000,这显然是错误的,余额应该是12000,  这种情况如何避免呢?
      

  3.   


    比如:老公(名A)和 老婆(名B)同时在两个银行网点用自已家唯一的银行帐户办理业务,
    1、A 存款5000 先读出余款是10000,而后存入5000, 对应的语句是 “update 帐户表  set 余额=15000”
    2、B 取出3000 选读出余款是10000,而后取款3000,对应的语句是  “update 帐户表  set 余额=7000”最终他们帐户里的余款可能是7000,这显然是错误的,余额应该是12000,  这种情况如何避免呢?这个问题也是我很想知道要怎么解决,我有个想法,为什么要先读呢,
    1.A 存款5000 语句"update 帐户表 set 余额=余额+5000"
    2.B 取3000 语句"update 帐户表 set 余额=余额-3000"
    不知道这样行不行,更新完再读出余额
      

  4.   


    1、update 帐户表  set 余额=余额+5000 where
    2、update 帐户表  set 余额=余额-3000 where