求助!并发用户导致脏读/脏写
应用环境:SQL SERVER 2000
程序语言:VB 6.0
并发操作用户数:8
出错模块:零件出入库(库存结算有误)
相关数据库表:tbmaterial(零件信息表),tbcgorderin(零件出入库信息表)
tbcgorderin数据结构:ID,零件代号,入库数量,出库数量,结余数量
变量定义:CNN(当前数据库链接) rec(记录集)
实现思想:
CNN.begintrans
IF 添加
求最后一笔结余库存数(利用ID排序):rec.open SQLstr1,CNN,adOpenStatic, adLockPessimistic
插入相关记录
插入库存字段值
else 编辑
查找编辑行入库数量:rec.open SQLstr2,CNN,adOpenStatic, adLockPessimistic
计算入库数量差异
更新相关记录
更新库存字段值
检索ID大于编辑行ID的所有记录:rec.open SQLstr3,CNN,adOpenStatic, adLockPessimistic
逐条更新相关记录及库存字段值
endif
CNN.committrans
SQLstr1:select * from tbcgorderin where 零件代号=需添加业务数据的零件代号 order by ID
SQLstr2:select * from tbcgorderin where ID=SQLstr1语句检索记录的ID
SQLstr3:select * from tbcgorderin where ID=SQLstr1语句检索记录的ID