求助!并发用户导致脏读/脏写

lsj1982 2007-04-05 09:58:29
应用环境: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
...全文
403 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
---涛声依旧--- 2007-04-07
  • 打赏
  • 举报
回复
IF 添加

求最后一笔结余库存数(利用ID排序):rec.open SQLstr1,CNN,adOpenStatic, adLockPessimistic

CNN.begintrans --查詢語句不要放在事務當中
插入相关记录
插入库存字段值

CNN.committrans

else 编辑

查找编辑行入库数量:rec.open SQLstr2,CNN,adOpenStatic, adLockPessimistic
计算入库数量差异

CNN.begintrans

更新相关记录
更新库存字段值
检索ID大于编辑行ID的所有记录:rec.open SQLstr3,CNN,adOpenStatic, adLockPessimistic
逐条更新相关记录及库存字段值

CNN.committrans
iamtsfw 2007-04-07
  • 打赏
  • 举报
回复
加入:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

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
OracleRoob 2007-04-07
  • 打赏
  • 举报
回复

IF 添加

CNN.begintrans

求最后一笔结余库存数(利用ID排序):rec.open SQLstr1,CNN,adOpenStatic, adLockPessimistic
插入相关记录
插入库存字段值

CNN.committrans

else 编辑

CNN.begintrans

查找编辑行入库数量:rec.open SQLstr2,CNN,adOpenStatic, adLockPessimistic
计算入库数量差异
更新相关记录
更新库存字段值
检索ID大于编辑行ID的所有记录:rec.open SQLstr3,CNN,adOpenStatic, adLockPessimistic
逐条更新相关记录及库存字段值

CNN.committrans

endif
lsj1982 2007-04-07
  • 打赏
  • 举报
回复
没人顶呀!高手站出来说话呀,有没有什么解决方案?

分数不惜!!!!!!!!

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧