zoukankan      html  css  js  c++  java
  • delphi使用ODAC控件事务处理(自动提交)

    ODAC中事务处理(自动提交模式)

    使用AutoCommit属性,可以在不显式调用Commit或Rollback方法的情况下,启动隐式事务(自动提交)。

    将AutoCommit设置为True时,在每次数据库访问后隐式调用Commit方法。

    TOraSesion中的AutoCommit属性指定连接当前Session的数据控件是否隐式提交。默认值为True。

     继承自TCustomDADataSet和TCustomDASQL类的组件(OraQuery 、TOraSQL、TOraStoredProc等)都有AutoCommit属性,可以指定其隐式事务,默认值为True。

    property AutoCommit: boolean;  //自动提交

    备注

    1.TOraSession中的AutoCommit属性和连接当前Session的数据控件的AutoCommit属性都为True时,才能隐式提交。 

    2.启动隐式事务相当于在写的SQL语句后加了Commit;(如果在语句中已经写了Commit;或Rollback;隐式事务可以忽略

    3.连接同一TOraSession的多个数据控件,如果有AutoCommit := True和AutoCommit := False的,AutoCommit := True的执行后,相当于执行TOraSession.Commit;,可能会影响会导致AutoCommit := False也提交

    OraSQL.Session := OraSession;
    OraSession.AutoCommit := True;
    OraSQL.AutoCommit := False;
    OraSQL.SQL := 'DELETE FROM Dept'; 
    OraSQL.Execute;         // 删除所有记录,不执行提交
    OraSession.Rollback;// 恢复已删除的记录
    OraSession.AutoCommit := False;
    OraSQL.AutoCommit := True;
    OraSQL.SQL := 'DELETE FROM Dept'; 
    OraSQL.Execute;         // 删除所有记录,不执行提交
    OraSession.Rollback; // 恢复已删除的记录
    OraSession.AutoCommit := True;
    OraSQL.AutoCommit := True;
    OraSQL.SQL := 'DELETE FROM Dept'; 
    OraSQL.Execute;         // 删除所有记录,执行提交
    OraSession.Rollback; // 无法还原已删除的记录
    OraSQL1.Session := OraSession;
    OraSQL2.Session := OraSession;
    OraSession.AutoCommit := True;
    OraSQL1.AutoCommit := False;
    OraSQL2.AutoCommit := True;
    OraSQL1.SQL := 'DELETE FROM Dept WHERE DeptNo = 1'; 
    OraSQL1.Execute;         // 删除DeptNo = 1记录,不执行提交
    OraSQL2.SQL := 'DELETE FROM Dept WHERE DeptNo = 2'; 
    OraSQL2.Execute;         // 删除DeptNo = 2记录,执行提交
    //相当于隐式执行OraSession.Commit;
    OraSession.Rollback;// 无法恢复DeptNo = 1和DeptNo = 2的记录
  • 相关阅读:
    Jzoj4822 完美标号
    Jzoj4822 完美标号
    Jzoj4792 整除
    Jzoj4792 整除
    Educational Codeforces Round 79 A. New Year Garland
    Good Bye 2019 C. Make Good
    ?Good Bye 2019 B. Interesting Subarray
    Good Bye 2019 A. Card Game
    力扣算法题—088扰乱字符串【二叉树】
    力扣算法题—086分隔链表
  • 原文地址:https://www.cnblogs.com/txgh/p/13622003.html
Copyright © 2011-2022 走看看