Symfoware/RDBでは、データベースの更新は、データ操作のSQL文の実行ごとに行われるのではなく、トランザクション制御のSQL文に従って行われます。データベースの更新の単位をトランザクションと呼びます。
本節では、SQL文を使用してデータ操作を行った場合に、Symfoware/RDBが操作の内容をどのようにデータベースへ反映するかを説明します。
トランザクションは、Symfoware/RDBにより自動的に開始されます。アプリケーション中のSQL文を実行する場合、トランザクションが開始された状態でなければ、SQL文の処理に先立ってトランザクションが開始されます。トランザクションが開始されていない状態とは、アプリケーションが実行開始したあと、またはトランザクション制御用のSQL文によってトランザクションが終了したあと、SQL文が一度も実行されていない状態です。
SQL文には、トランザクションを開始しないSQL文もあります。
トランザクションを開始するSQL文
カーソル宣言以外のデータ操作文
動的カーソル宣言以外の動的SQL文
CALL文
トランザクションを開始しないSQL文
トランザクション制御文
コネクション管理文
セション管理文
埋込み例外宣言
カーソル宣言
動的カーソル宣言
資源操作文
SET USER PASSWORD文
SET ROLE文
トランザクションは、以下のSQL文を実行することによって、終了させることができます。また、アプリケーションが正常終了すると、自動的に終了します。
SQL文 | 機能 |
---|---|
COMMIT文 | 現在のトランザクションを終了します。 |
ROLLBACK文 | 現在のトランザクションを終了します。 |
注) データ操作には、挿入、更新および削除があります。
トランザクションを制御する例
トランザクションを制御する例を以下に示します。データ操作のSQL文を実行すると、トランザクションごとに、そのトランザクション内で処理されたデータがデータベースに反映されます。
図2.2 データベースの更新処理