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