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