BACKOUT [TRANSACTION] |
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte 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
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Das BACKOUT TRANSACTION-Statement bewirkt, dass alle
Datenbankänderungen, die während der laufenden, noch nicht abgeschlossenen
logischen Transaktion ausgeführt wurden, rückgängig gemacht werden; außerdem
bewirkt es, dass alle während der Transaktion gehaltenen Datensätze wieder
freigegeben werden.
Das BACKOUT TRANSACTION-Statement wird nur ausgeführt, wenn
eine Datenbanktransaktion unter Kontrolle von Natural stattgefunden hat. Für
welche Datenbanken das Statement ausgeführt wird, hängt davon ab, wie der
Profilparameter ET (Ausführung von
END/BACKOUT TRANSACTION-Statements) gesetzt ist:
Ist ET=OFF gesetzt, wird das Statement nur für die von
der Transaktion betroffene Datenbank ausgeführt.
Ist ET=ON gesetzt, wird das Statement für alle
Datenbanken ausgeführt, die seit der letzten Ausführung eines BACKOUT
TRANSACTION- oder END
TRANSACTION-Statements referenziert wurden.
Unterbricht der Benutzer mit einem Natural-Terminalkommando (Kommando
%% oder
CLEAR-Taste) eine gerade
aktive Natural-Operation, dann führt Natural ein BACKOUT
TRANSACTION-Statement aus.
Weitere Informationen siehe Terminalkommando
%% in der
Terminalkommando-Dokumentation.
Weitere Informationen zur Natural-Transaktionslogik und zum Beenden/Abbrechen einer logischen Transaktion finden Sie im Kapitel Datenbankzugriffe im Leitfaden zur Programmierung.
Mit Entire System Server kann dieses Statement nicht verwendet werden.
Syntax-Element-Beschreibung:
** 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
Ausgabe des Programms BOTEX1:
DEPARTMENT TO BE UPDATED: MGMT30
Ergebnis für die Abteilung MGMT30:
NAME: POREE LEAVE DUE: 45 LEAVE TAKEN: 31
Aufforderung zur Bestätigung:
UPDATE TO BE PERFORMED YES/NO: NO