首页 > 其他分享 >PB开发境界 多个DW进行update

PB开发境界 多个DW进行update

时间:2023-04-26 10:34:44浏览次数:28  
标签:END ROLLBACK update Update PB dw DW

多个DW进行update

//菜鸟代码
dw_1.Update()
dw_2.Update()
初级代码
IF dw_1.Update() = 1 And dw_2.Update() = 1 THEN
        COMMIT;
ELSE
        ROLLBACK;
END IF
中级代码
IF dw_1.Update() = 1 THEN
        IF dw_2.Update() = 1 THEN
                COMMIT;
        ELSE
                MessageBox("提示","喝多了!")
                ROLLBACK;
        END IF
ELSE
        MessageBox("提示","喝多了!")
        ROLLBACK;
END IF
高级代码
IF dw_1.Update() = 1 THEN
        IF dw_2.Update() = 1 THEN
                COMMIT;
        ELSE
                ROLLBACK;
                MessageBox("提示","少喝点!")
        END IF
ELSE
        ROLLBACK;
        MessageBox("提示","少喝点!")
END IF
专家级代码
IF dw_1.Update(True,False) = 1 THEN
        IF dw_2.Update(True,False) = 1 THEN
                dw_1.ResetUpdate()
                dw_2.ResetUpdate()
                COMMIT;
        ELSE
                ROLLBACK;
                MessageBox("提示","没喝高啊!")
        END IF
ELSE
        ROLLBACK;
        MessageBox("提示","没喝高啊!")
END IF

 

 

多个DW进行update,有时会不能全部成功update 用事务处理时,多个DW进行update后,再COMMIT.偶然会发现前面几个DW update成功,但后面的表失败时,好像执行了COMMIT,不会rollback. 

正确的写法如下: 
if dw_1.update(true, false)= 1 and dw_2.update(true, false)=1 ...then 
  commit; 
  dw_1.resetUpdate(); 
  dw_2.resetUpdate(); 

else 
  rollback; 
end if

标签:END,ROLLBACK,update,Update,PB,dw,DW
From: https://www.cnblogs.com/djd66/p/17354919.html

相关文章

  • 【SD集训】20230425 T2 差(difference) 题解 CF1500F 【Cupboards Jumps】
    大家可以猜猜看为什么有两个标题,因为这个原因本文就不设密码了,被He_ren的原题创到了。吐槽一下,He_ren甚至出原题还用脚造数据,虽然数据确实比较难造。不过那两个\(O(n^2)\)老哥好像都没最后将所有数调整成非负,遗憾20。有人场切*3500却没过签到题,我不说是谁。题目描述......
  • SQL Inject漏洞手工测试:基于报错的信息获取(select/delete/update/insert)
    技巧思路:在MYSQL中使用一些指定的函数来制造报错,从而从报错信息中获取设定的信息。select/insert/update/delete都可以使用报错来获取信息。背景条件:后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。重点:基于报错的信息获取------三个常用的用来报错的函数updatexml()......
  • update by query
    类似于mysql中的updatesetwhere核心jsonVM,POD类型的数据,并且host.network.bytes.outgoing字段不为null,并且时间窗口范围在。。。到。。。之间的数据修改其中host.network.bytes.outgoing字段的值为nullPOSTdelta-monitor-2023.04.24/_update_by_query{"script":{......
  • pandas.DataFrame.groupby—使用映射器或通过一系列列对数据框进行分组
    语法格式DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=_NoDefault.no_default, squeeze=_NoDefault.no_default, observed=False, dropna=True)常用的几个参数解释:by:可接受映射、函数、标签或标签列表。用于确定分组。ax......
  • 8.solidwork装配体太大,用大型设计审阅打开可以装配不能编辑,速度最快
     轻化零部件、大型装配体模式等方法的使用,通过这些方法可以提高打开装配体的速度。其实还可以进一步提高打开装配体的速度,那就是使用设计审阅。设计审阅能快速打开装配体,甚至非常大的装配体,同时可以进行装配体设计审阅时有用的各项功能,包括如下:导览设计树、测量距离、生成横断......
  • Unity通过PBXProject生成XCode工程
    Unity版本:2020.3.47f1首先通过PostProcessBuildAttribute监听XCode工程导出完成事件,GetUnityMainTargetGuid是获取XCode工程中"Unity-iPhone"对应的target,GetUnityFrameworkTargetGuid则对应"UnityFramework",在unity中大部分操作会是针对UnityFramework。PBXProject的很多操作都......
  • 可视化大屏:mapbox+vue全攻略
    如题图,mapbox是一个支持真3D地形展示的webGIS框架,与常用的Leaflet、Cesium和Openlayers并称四大框架,本文将介绍mapbox-gljs在vue中的用法。为什么要用mapbox?各位可以自行搜索上面提到的或者其他的webGIS框架或者集成服务商,可以很轻松的比较出mapbox的优势:支持3D地形......
  • Mysql - Gorm Updates的坑
    //如果单个属性被更改了,更新它db.Model(&user).Update("name","hello")////UPDATEusersSETname='hello',updated_at='2013-11-1721:34:10'WHEREid=111;//使用组合条件更新单个属性db.Model(&user).Where("active=?",true).U......
  • 一统天下 flutter - widget Sliver: SliverAppBar/FlexibleSpaceBar - 可展开/收缩的
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widgetSliver:SliverAppBar/FlexibleSpaceBar-可展开/收缩的标题栏(需要在CustomScrollView中使用)示例如下:lib\widget\sliver\sliver_app_bar.dart/**SliverAppBar/FlexibleSpaceBar......
  • mysql select for update + 事务处理数据一致性
    如果SELECT后面若要UPDATE同一个表数据的相关操作,最好使用SELECT...FORUPDATE。一:举例说明假设商品表单test_leyangjun 内有一个存放商品库存的num字段,一个id主键 ,在生成订单前须先确定num>0 ,然后才把数量更新。代码如下(比如现在的库存:num=3对应的id=3,现在生成一个订单......