RETRY
|
Dieses Dokument behandelt folgende Themen:
Verwandte Statements: ACCEPT/REJECT |
AT BREAK |
AT START OF DATA |
AT END OF DATA |
BACKOUT TRANSACTION |
BEFORE BREAK PROCESSING |
DELETE |
END TRANSACTION |
FIND |
GET |
GET SAME |
GET TRANSACTION DATA |
HISTOGRAM |
LIMIT |
PASSW |
PERFORM BREAK PROCESSING
| READ |
STORE |
UPDATE
Gehört zur Funktionsgruppe: Datenbankzugriffe und Datenbankänderungen
Das Statement RETRY wird in einem ON
ERROR-Statement-Block (siehe ON
ERROR-Statement) verwendet. Es dient dazu, erneut zu
versuchen, auf einen Datensatz zuzugreifen, auf den bereits ein anderer
Benutzer zugegriffen hat und der sich daher im Hold-Status befindet.
Befindet sich ein Datensatz im Hold für einen anderen Benutzer, gibt
Natural die Fehlermeldung 3145 aus. Siehe auch Session-Parameter
WH (Wait for
Record in Hold Status).
Das RETRY-Statement muss in dem Objekt stehen, das die
Fehlermeldung 3145 verursacht. Weitere Informationen zur
Record-Hold-Logik finden Sie im Abschnitt
Datensatz-Kontrolle
während einer Transaktion (Hold-Logik) im
Leitfaden zur Programmierung.
Dieses Statement kann nur für den Zugriff auf Adabas-Datenbanken verwendet werden.
** Example 'RTYEX1': RETRY
**
** CAUTION: Executing this example will modify the database records!
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 NAME
*
1 #RETRY (A1) INIT <' '>
END-DEFINE
*
FIND EMPLOY-VIEW WITH NAME = 'ALDEN'
/*
DELETE
END TRANSACTION
/*
ON ERROR
IF *ERROR-NR = 3145
INPUT NO ERASE 10/1
'RECORD IS IN HOLD' /
'DO YOU WISH TO RETRY?' /
#RETRY '(Y)ES OR (N)O?'
IF #RETRY = 'Y'
RETRY
ELSE
STOP
END-IF
END-IF
END-ERROR
/*
AT END OF DATA
WRITE NOTITLE *NUMBER 'RECORDS DELETED'
END-ENDDATA
END-FIND
*
END