ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(共通編)

1.1.1 トランザクション制御の概要

SQL文を使用してデータ操作を行った場合に、Symfoware/RDBが操作の内容をどのようにデータベースへ反映するかを説明します。

トランザクションの開始

トランザクションは、Symfoware/RDBにより自動的に開始されます。アプリケーション中のSQL文を実行する場合、トランザクションが開始された状態でなければ、SQL文の処理に先立ってトランザクションが開始されます。トランザクションが開始されていない状態とは、アプリケーションが実行開始したあと、またはトランザクション制御用のSQL文によってトランザクションが終了したあと、SQL文が一度も実行されていない状態です。

SQL文には、トランザクションを開始しないSQL文もあります。

トランザクションの終了

トランザクションは、以下のSQL文を実行することによって、終了させることができます。また、アプリケーションが正常終了すると、自動的に終了します。

表1.1 トランザクションを制御するSQL文

SQL

機能

COMMIT文

現在のトランザクションを終了します。
トランザクション内でのデータ操作(注)をすべてデータベースに反映します。
オープン中のすべてのカーソルをクローズします。ただし、トランザクションを超越するカーソルはクローズしません。
トランザクション内で獲得したロックをすべて解放します。

ROLLBACK文

現在のトランザクションを終了します。
トランザクション内でのデータ操作(注)はすべて取り消します。
オープン中のすべてのカーソルをクローズします。
トランザクション内で獲得したロックをすべて解放します。

注) データ操作には、挿入、更新および削除があります。

トランザクションを制御する例

トランザクションを制御する例を以下に示します。データ操作のSQL文を実行すると、トランザクションごとに、そのトランザクション内で処理されたデータがデータベースに反映されます。

図1.2 データベースの更新処理