------------------
出库单细表:
单号 行号 物料编号 入库数量 生产订单
IN986 1 A 100 PO97
IN986 2 B 200 PO97
IN986 3 A 400 PO86
IN986 4 B 600 PO86
-------------------
仓库库存表
物料编号 批号 库存量
A LOT91 80
A LOT96 600
B LOT75 150
B LOT82 900
------------------
如果不用存储过程,直接用.net业务处理层去做出库记帐,最佳效率的方案是怎样的?
------------------
我见过这样的.net方案:
1. 在一个出库单的业务组件 提取出库单数据集合 , 对DataRow集合遍历;
2. 对每一出库DataRow对仓库库存表的业务组件提取相同物料编号的数据集合,遍历扣减库存,在事务中持久化一次 ;
3. 继续遍历下一个出库DataRow对象,对仓库库存表的业务组件提取相同物料编号的数据集合,遍历扣减库存,再在事务中持久化一次
4. 直到DataRow集合遍历完成,提交事务;
这样对数据库的往返次数是不是太频繁了吗,这是不是一个可以接受的好的解决方案?有没有更好的解决方案
5. 如果说有,用sql server存储进程,就可以很好解决这个问题,但如果不用存储过程呢?
------------------
出库单细表:
单号 行号 物料编号 入库数量 生产订单
IN986 1 A 100 PO97
IN986 2 B 200 PO97
IN986 3 A 400 PO86
IN986 4 B 600 PO86
-------------------
仓库库存表
物料编号 批号 库存量
A LOT91 80
A LOT96 600
B LOT75 150
B LOT82 900
------------------
如果不用存储过程,直接用.net业务处理层去做出库记帐,最佳效率的方案是怎样的?
------------------
我见过这样的.net方案:
1. 在一个出库单的业务组件 提取出库单数据集合 , 对DataRow集合遍历;
2. 对每一出库DataRow对仓库库存表的业务组件提取相同物料编号的数据集合,遍历扣减库存,在事务中持久化一次 ;
3. 继续遍历下一个出库DataRow对象,对仓库库存表的业务组件提取相同物料编号的数据集合,遍历扣减库存,再在事务中持久化一次
4. 直到DataRow集合遍历完成,提交事务;
这样对数据库的往返次数是不是太频繁了吗,这是不是一个可以接受的好的解决方案?有没有更好的解决方案
5. 如果说有,用sql server存储进程,就可以很好解决这个问题,但如果不用存储过程呢?
------------------
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货