日期:2014-05-18  浏览次数:20488 次

请老师们帮我看看这个问题
我学习写的一个ERP小软件,前台销售界面先调用存储过程A判断库存表里的数量是否满足本次销售,如果满足,再调用存储过程B,B执行后带回插入销售表里标识字段产生的djh,前台再用返回的djh用FOR循环语句循环调用存储过程C和D,其中D是修改库存表中的库存的。
在C/S结构下,两台或更多工作站同时工作,会不会发生当A已经判断库存数量满足时,还没调用D时,另一台工作站先行修改了库存,导致库存不足?
补充:我不想用事务控制,太麻烦!

------解决方案--------------------
楼主的操作才真的是太麻烦哪,看都看不懂!
要我做,我会这样:
前台先检索要销售货物的库存数量是否够,如够,形成销售单,确认后到数据库中先更改库存表,再插入销售表,再将销售表中的含标识的销售清单返回到前台打印.
多行记录可以一次更新的,只要你有一个表,上面所说的销售单就是一个表,也可以是一个临时生成的表,其中的货物编号是在前次检索时获得的.
update a set 库存量=库存量-b.销售量 from 库存表 a inner join 销售表 b on a.货物编号=b.货物编号
一次搞定.

另外,如果是C/S结构,有并行处理,那用事务是必须的,也是基本的,否则,你等着处理烦死人的脏数据吧!
------解决方案--------------------
你还是用事务比较靠谱写 ;怕麻烦会有更大的麻烦 那时候就真哭了!
------解决方案--------------------
看起来是个进销存的问题 可以去找找相关的语句 很多的。