BACKOUT [TRANSACTION ] |
このドキュメントでは、次のトピックについて説明します。
構文図で使用されている記号については、「構文記号」を参照してください。
関連ステートメント: ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET SAME | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW | PERFORM BREAK PROCESSING | READ | RETRY | STORE | UPDATE
関連機能グループ:「データベースへのアクセスと更新」
BACKOUT TRANSACTION
ステートメントは、現在の論理トランザクション内で実行された、すべてのデータベース更新をバックアウトします。 このステートメントも、トランザクション中に保持されていたすべてのレコードを解放します。
BACKOUT TRANSACTION ステートメントは、Natural の制御下でデータベーストランザクションが発生した場合にのみ実行されます。 どのデータベースに対して、ステートメントが実行されるかは、Natural プロファイルパラメータ
ET
(END/BACKOUT TRANSACTION
ステートメントの実行)の設定に依存します。
ET=OFF
の場合、トランザクションで影響を受けたデータベースに対してのみ、ステートメントが実行されます。
ET=ON
の場合、BACKOUT TRANSACTION
または END TRANSACTION
ステートメントの最後の実行以後に参照された全データベースに対して、ステートメントが実行されます。
ユーザーが端末コマンド(コマンド %%
または CLEAR キー)で現在の Natural を中断した場合、Natural によって BACKOUT TRANSACTION
ステートメントが発行されます。
詳細については、『端末コマンド』ドキュメントで端末コマンド %%
を参照してください。
トランザクションバックアウト機能の使用に関する詳細については、『プログラミングガイド』の「データベース更新 - トランザクション処理」セクションおよび「トランザクションのバックアウト」セクションを参照してください。
このステートメントは Entire System Server では使用できません。
** Example 'BOTEX1': BACKOUT TRANSACTION ** ** CAUTION: Executing this example will modify the database records! ************************************************************************ DEFINE DATA LOCAL 1 EMPLOY-VIEW VIEW OF EMPLOYEES 2 NAME 2 DEPT 2 LEAVE-DUE 2 LEAVE-TAKEN * 1 #DEPT (A6) 1 #RESP (A3) END-DEFINE * LIMIT 3 INPUT 'DEPARTMENT TO BE UPDATED:' #DEPT IF #DEPT = ' ' STOP END-IF * FIND EMPLOY-VIEW WITH DEPT = #DEPT IF NO RECORDS FOUND REINPUT 'NO RECORDS FOUND' END-NOREC INPUT 'NAME: ' NAME (AD=O) / 'LEAVE DUE: ' LEAVE-DUE (AD=M) / 'LEAVE TAKEN:' LEAVE-TAKEN (AD=M) UPDATE END-FIND * INPUT 'UPDATE TO BE PERFORMED? YES/NO:' #RESP DECIDE ON FIRST #RESP VALUE 'YES' END TRANSACTION VALUE 'NO' BACKOUT TRANSACTION NONE REINPUT 'PLEASE ENTER YES OR NO' END-DECIDE * END
DEPARTMENT TO BE UPDATED: MGMT30
MGMT30 部門の結果:
NAME: POREE LEAVE DUE: 45 LEAVE TAKEN: 31
確認照会:
UPDATE TO BE PERFORMED YES/NO: NO