zoukankan      html  css  js  c++  java
  • 简单的SQL Server事务处理

          相信大家在日常编程中,都会遇到同时更新或同时维护多个表的操作,为保持数据的一致性,SQL Server里为我们提供很多便利方法,其中之一就是“事务处理”的办法。事务处理?可以简单实例化理解为:我们要同时更新表1、表2(不能因网络原因,在更新完表1后,由于断电或网络故障导致表2没有更新而致使两表的数据不能一致,在这种情况下,我们如何保证这两个表同时更新,操作才有效呢?这就是我想为大家介绍的事务处理简单方法)

        事务处理的一大优点就是,当表1与表2在一个事务处理过程中(当然要把操作表1、表2的维护动作放进一个事务进程中才有效),只要任何一个表操作不成功,两个表的任何操作在SQL里都是无效的,两个表的操作要同事操作成功SQL才让操作生效,这就达到数据的一致性。如何实现,简单介绍一下:

    1、VFP里如何通知SQL Server开始一个事务呢?

    通过 SQLSETPROP()函数实现

    IF SQLSETPROP(nConnectionHandle,"Transactions",2)<=0

       =MESSAGEBOX("提交事务开始不成功",16,"提示")

    ELSE

       =MESSAGEBOX("提交事务开始成功",16,"提示")

    ENDIF

    2、VFP里如何通知SQL Server结束一个事务呢? 

    IF SQLSETPROP(nConnectionHandle,"Transactions",1)<=0

       =MESSAGEBOX("事务结束不成功",16,"提示")

    ELSE

       =MESSAGEBOX("事务结束成功",16,"提示")

    ENDIF  

    3、 数据处理代码的应该放在事务处理的哪个位置呢?

    在VFP要提交给SQL Server处理的数据应该放在以上第1点后,事务成功开始后边,第2点应该放在数据处理完结的后边。

    4、事务处理的开始后,VFP还要提醒SQL Server去执行处理:

        SQLCOMMIT()函数实现:   

    SQLCOMMIT(nConnectionHandle):表示通知SQL Server提交一个事务处理

    注意:当以上第3点的数据处理全部成功了,但没有在这之后没有执行事务提交的话,操作还是不成功的。

          所以在一个事务结束前,必须提交这个事务让SOL Server进行处理。

    5、如何取消一个事务的执行结果:

       SQLROLLBACK(nConnectionHandle)函数能实现这个。

    以上是实现SQL Server简单事务处理的方法,详细的还要靠大家去看看这些函数的一些用法与设置。


    Ewin:梦想可以到达的地方,网络就可以做到-开放、平等、自由、充满激情......

  • 相关阅读:
    Core Animation 文档翻译—附录C(KVC扩展)
    Core Animation 文档翻译—附录B(可动画的属性)
    Core Animation 文档翻译—附录A(Layer样貌相关属性动画)
    Core Animation 文档翻译 (第八篇)—提高动画的性能
    Core Animation 文档翻译 (第七篇)—改变Layer的默认动画
    Core Animation 文档翻译 (第六篇)—高级动画技巧
    Core Animation 文档翻译 (第五篇)—构建Layer的层次结构
    用Markdown快速排版一片文章
    Core Animation 文档翻译 (第四篇)—让Layer的content动画起来
    Core Animation 文档翻译(第三篇)—设置Layer对象
  • 原文地址:https://www.cnblogs.com/Ewin/p/1302402.html
Copyright © 2011-2022 走看看