datewindow的update where子句控制并发的实例

来源:互联网 发布:上瘾网络剧完整版哔哩 编辑:程序博客网 时间:2024/05/16 11:54

dw的更新条件子句控制“并发”的实例

2011-5-20 10:08

 

 <FONT style="FONT-SIZE: 10.5pt" face=""">

 

如上图有一个【发货记录表】,有两个部门操作

    是成品发货,要记录装车时间和条码扫描人

    是财务,要记录出库时间(实际是收款时间)和审核人

 

虽然在成品发货时,不会修改【财务审核人/出库时间】,但是在 updatewhere子句中,仍要包括【财务审核人出库时间】这两个字段,(如图:

 )

否则可能会由于“并发”导致错误的结果

 

 在发货审核时,要求根据财务收款审核情况,做出不同的动作,看下种方式在实际工作时的区别:

 

A.假设dw对象中未设置【财务审核人&出库时间】为可更新字段

当成品发货在打开本工作界面时,财务尚未进行收款审核,因此,【财务审核人出库时间】在dw中的值是空的,但在成品发货部门点保存按钮之前,财务部门进行了收款审核并保存,而这时成品发货部门再点保存是可以成功的,这时由于认为财务尚未进行收款审核,从而做出错误的保存步骤。

B.假设dw对象中设置为更新字段包括【财务审核人&出库时间】 

当成品发货在打开本工作界面时,财务尚未进行收款审核,因此,【财务审核人出库时间】在dw中的值是空的,但在成品发货部门点保存按钮之前,财务部门进行了收款审核并保存,而这时成品发货部门再点保存,则会保存失败,从而不会发生A中的错误.

 

同理,在财务收款审核界面上的【发货记录表】dw中, updatewhere子句中,也要包括【装车时间条码扫描人】两个字段

这样,一但出现了并发操作,dw会报告更新失败,用户重新进入后,获得最新数据,就可以正确处理和保存了。

原创粉丝点击