Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU - |
目次 索引 |
トランザクションの終了方法には、以下の3つの方法があります。
COMMIT文によるトランザクションの終了
ROLLBACK文によるトランザクションの終了
応用プログラムの終了によるトランザクションの終了
COMMIT文は、トランザクションの区切りを指定するSQL文です。COMMIT文により行われる処理は、以下のとおりです。
処理中のトランザクションを終了し、このトランザクションで行われたデータ操作をデータベースに反映します。
オープン中のすべてのカーソルをクローズします。ただし、トランザクションを超越するカーソルはクローズしません。
このトランザクションで獲得した、データベース資源のロックをすべて解放します。
前に実行したCOMMIT文またはROLLBACK文以後、当該COMMIT文までに行ったデータベースの処理をデータベースに反映します。次に、現在のトランザクションを終了します。一度もCOMMIT文またはROLLBACK文を実行していない場合は、応用プログラムの実行開始から当該COMMIT文までのデータベースの処理をデータベースに反映します。
COMMIT文の形式を以下に示します。
COMMIT WORK |
図:COMMIT文によるデータベース更新の例に、COMMIT文によるデータベース更新の例を示します。
ROLLBACK文は、トランザクション内で行ったデータベースの処理を取り消すためのSQL文です。ROLLBACK文により行われる処理を以下に示します。
処理中のトランザクションを終了し、このトランザクションで行われたすべての変更を取り消します。データベースは更新されません。
オープン中のすべてのカーソルをクローズします。
このトランザクションで獲得した、データベース資源のロックをすべて解放します。
前に実行したCOMMIT文またはROLLBACK文実行以後、当該ROLLBACK文までに行ったデータベースの処理を取り消します。そして、現在のトランザクションを終了します。一度もCOMMIT文またはROLLBACK文を実行していない場合は、応用プログラムの実行開始から当該ROLLBACK文までのデータベースの処理を取り消します。
ROLLBACK文の形式を以下に示します。
ROLLBACK WORK |
図:ROLLBACK文によるトランザクション取消しの例に、ROLLBACK文によるトランザクション取消しの例を示します。
応用プログラムがトランザクション開始状態のままCOMMIT文もROLLBACK文も実行せずに終了する場合には、Symfoware/RDBがトランザクションをロールバックします。
図:トランザクション開始状態での応用プログラムの終了の例に、トランザクションが開始状態のまま応用プログラムが終了する例を示します。
目次 索引 |