BACKOUT [TRANSACTION ] |
This document covers the following topics:
For an explanation of the symbols used in the syntax diagram, see Syntax Symbols.
Related Statements: 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
Belongs to Function Group: Database Access and Update
The BACKOUT TRANSACTION
statement is used to back out all
database updates performed during the current logical transaction. This
statement also releases all records held during the transaction.
The statement is executed only if a database transaction under control
of Natural has taken place. For which databases the statement is executed
depends on the setting of the profile parameter ET
(execution of
END/BACKOUT TRANSACTION
statements):
If ET=OFF
, the statement is executed only for the
database affected by the transaction.
If ET=ON
, the statement is executed for all databases
that have been referenced since the last execution of a BACKOUT
TRANSACTION
or END
TRANSACTION
statement.
If the user interrupts the current Natural operation with a terminal
command (command %%
or
CLEAR key), Natural
issues a BACKOUT TRANSACTION
statement.
See also the terminal command %%
in the Terminal
Commands documentation.
For additional information on the use of the transaction backout feature, see the sections Database Update - Transaction Processing and Backing Out a Transaction in the Programming Guide.
This statement is not available with 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
Result for department MGMT30:
NAME: POREE LEAVE DUE: 45 LEAVE TAKEN: 31
Confirmation query:
UPDATE TO BE PERFORMED YES/NO: NO