专栏首页加菲猫的VFP十二行代码教你搞定写双表事务处理,数据管理更专业

十二行代码教你搞定写双表事务处理,数据管理更专业

VFP双表事务处理,双表是指本地表和远程表同时加上事务,这样本地表和远程表,要么同时成功,要么同时失败。

事务是为了保证所处理数据的完整性,如n个相关表被同时修改,在保存数据时,要么全部保存,要么都不保存,这只有用事务来实现。

举例:

入库单增加了一个物料,库存表的相应也应该增加。如果入库单保存成功,库存表没有保存成功,便会出现数据不一致。而加上事务之后,如果库存表没有保存成功,入库单的数据也会回滚,便不保存。

用try结构来处理事务,比用IF每句判断要简单明快得多,我见过许多人写的事务,那个就复杂,看得头晕晕的。

VFP双表事务

Begin Transaction  &&临时表事务
Try     
  SQLSetprop(nDatasource,'transactions',2)    &&手动事务处理  
  *-- 此处保存的相关代码   
 
  Sqlcommit(nDatasource)
  SQLSetprop(nDatasource,'transactions',1)    &&自动事务处理
  End Transaction  &&临时表事务结束  
Catch To ex  
  ROLLBACK 
  Sqlrollback(nDatasource) &&出错了,则事务回滚
  SQLSetprop(nDatasource,'transactions',1)    &&自动事务处理 
  ?ex.Message
Endtry

Begin Transaction &&临时表事务 Try SQLSetprop(nDatasource,'transactions',2) &&手动事务处理 *-- 此处保存的相关代码 This.AfterSave() Sqlcommit(nDatasource) SQLSetprop(nDatasource,'transactions',1) &&自动事务处理 End Transaction &&临时表事务结束 Catch To ex llSaveSuccess =.F. ROLLBACK Sqlrollback(nDatasource) &&出错了,则事务回滚 SQLSetprop(nDatasource,'transactions',1) &&自动事务处理 *Throw ex ?ex.Message EndtryBegin Transaction &&临时表事务 Try SQLSetprop(nDatasource,'transactions',2) &&手动事务处理 *-- 此处保存的相关代码 This.AfterSave() Sqlcommit(nDatasource) SQLSetprop(nDatasource,'transactions',1) &&自动事务处理 End Transaction &&临时表事务结束 Catch To ex llSaveSuccess =.F. ROLLBACK Sqlrollback(nDatasource) &&出错了,则事务回滚 SQLSetprop(nDatasource,'transactions',1) &&自动事务处理 *Throw ex ?ex.Message Endtry

在猫框中,想要协调DAL_CA与MSSQLhelper同时拥有事务,只要他们在同一个句柄下就可以操作啦。

oDBSQLhelper=newobject("mssqlhelper","mssqlhelper.prg")

?oDBSQLhelper.datasource  && mssqlhelper自动创建的句柄

oDAL_CA=newobject("dal_ryxx","dal_ryxx.prg","",oDBSQLHelper.datasource)

oDBSQLhelper2=newobject("mssqlhelper","mssqlhelper.prg","",oDBSQLHelper.datasource)

这样oDBSQLhelper,oDAL_CA,oDBSQLhelper2 都处于同一句柄,随时开启事务,一起愉快玩耍。

对了,在框架中,其实连事务都可以不用写,直接SAVE就好。

本文分享自微信公众号 - 加菲猫的VFP(VFPPLUS),作者:加菲猫的VFP

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-09-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 对话院士张钹:人工智能创业如何避免昙花一现

    大数据文摘
  • 美国免费为全世界提供GPS服务,为什么中国还要搞“北斗”?

    摘要:12月27日,在国务院新闻办公室新闻发布会上,中国卫星导航系统管理办公室主任、北斗卫星导航系统新闻发言人冉承其宣布——北斗三号基本系统完成建设,于今日开始...

    钱塘数据
  • 告别加班:一个让你不再重复工作的技能

    996 一直是互联网老生常谈的话题了,但抛开其他只谈工作本身,你有没有想过,下班晚、加班,有时候可能是因为自己工作比较低效?

    小小詹同学
  • 前端资源分享——只为更好前端

    一、团队组织 网站说明腾讯 AlloyTeam 团队腾讯Web前端团队,代表作品WebQQ,致力于前端技术的研究ISUX腾讯社交用户体验设计,简称ISUX,腾...

    wangxl
  • 想从事大数据行业,什么专业比较好

    这是今天和客户吃饭的时候聊到的话题。某位客户的孩子在读高中,于是随口问陈老师:“想从事大数据行业的话,报什么专业比较好???”刚好一些同学也有类似问题,今天系统...

    接地气的陈老师
  • 前端资源、交流社区、技术博客等整理总汇

    最近看到这篇前端资源总汇的文章,整理的非常详细,于是搬过来,方便自己后期查阅,侵删。

    德顺
  • 前端资源分享-只为更好前端

    阅读更多 本文在GitHub的地址GitHub Front-end-resources

    WEBING
  • Python怎么学?学习Python没有那么容易,一定要掌握学习方法

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取...

    python学习教程
  • 10个提升效率的编程好习惯

    最近有读者反映学习编程困难,想放弃,询问是不是真的有不适合编程的人?我结合最近自己的学习经历和思考以及最近在数据结构与算法的折磨下得出的一些心得。

    我是管小亮
  • 程序员的十年工作创业血泪史,万字长文,仔细读完,受益匪浅

    吉日噶拉(在外企、上市公司工作过,自己也创业失败过,遇到过很多失败挫折,甚至露宿街头,但是最后还是挺过来了),是一个十几年的程序员了,本文介绍了他的相关经历,以...

    技术zhai
  • 程序员的十年工作创业血泪史,万字长文,仔细读完,受益匪浅

    本文所书写的内容,无论是对刚入门的程序员,还是工作了十年八年的程序员都有一些经验值得借鉴学习。

    技术zhai
  • 一个十几年程序员给所有新老程序员的忠告

    吉日噶拉(在外企、上市公司工作过,自己也创业失败过,遇到过很多失败挫折,甚至露宿街头,但是最后还是挺过来了),是一个十几年的程序员了,里面介绍了他的相关经历,以...

    AWeiLoveAndroid
  • 二本通信,路在何方?

    根据2019年教育部公布的数据,全国一共有高等院校2956所。其中,211大学有112所,985大学有39所。如果按现在比较流行的“双一流”标准,全国的“双一流...

    鲜枣课堂
  • 大学最让人抑郁的十个专业,看完我真的抑郁了...附2018年必知的最新高校专业变化!

    有的专业,会让人渐渐变了性格,也许曾经的你活泼开朗,但自从学了某种专业,你会变得郁郁寡欢,忧心忡忡;也许曾经的你内向、敏感、多疑,但自从学了某种专业,你会变得开...

    小莹莹
  • 等保到底是个啥(七):系统运维管理部分

    本篇为管理要求中系统运维管理的部分,等级保护中内容最多的一个章节。文中内容都是个人观点,如有不对的地方欢迎纠正。文章以等保三级系统为基础,从合规角度解读要求。

    FB客服
  • 【腾讯云的1001种玩法】征文活动

    腾讯云技术社区「腾云阁」上线以来得到了广大程序员们的支持,为了吸引更多的开发者入驻,现再次举办【腾讯云的1001种玩法】征文活动。只要是与「腾讯云」相关的干货原...

    云加社区
  • 如何搭建一支拖垮公司的技术团队?

    老读者知道,老K是程序员出身,经过好多年的努力奋斗,终于从一个懵懂无知的青年,变成一个懵懂无知的中年,一路跌跌撞撞做到了上市公司技术高管。

    macrozheng
  • 程序员(工作十几年)的创业血泪史,万字长文,与君共勉!

    他是一个十几年的程序员了,在外企、上市公司工作过,自己也创业失败过,遇到过很多失败挫折,甚至露宿街头,但是最后还是挺过来了,本文介绍了他的相关经历,以及他的一些...

    Java架构技术
  • 【内参】用友反驳金蝶21问 教销售如何刺杀金蝶

    以下问题是金蝶总部调研的销售人员最常见的21个问题,金蝶有一套标准答案。根据我们公司的情况,参考金蝶的答案组织成我们的参考答案,供销售人员使用。不过是一个很好谈...

    人称T客

扫码关注云+社区

领取腾讯云代金券