Hinweise zur Anweisung 'set' für Datei-Ein-/Ausgabe
Im Kontext der Datei-Ein-/Ausgabe ohne Datenbankbezug können mit der EGL-Anweisung 'set' alle Felder in einer Datensatzvariablen zurückgesetzt werden und im Falle des Stereotyps 'IndexedRecord' die Positionen der Dateizeiger geändert werden.
Wenn Sie diese Anweisung mit dem Stereotyp 'CSVRecord' verwenden, ist nur das folgende Format zulässig: set empty.
Syntax

- Datensatzvariable
- Der Name einer indexierten, relativen oder seriellen Datensatzvariablen, für die die Anweisung set ausgeführt wird.
- Wert
- Dies ist der Typ der set-Operation, die ausgeführt werden soll. Mögliche Werte:
- empty
- In diesem Fall erfolgt die Verarbeitung der Anweisung 'set' rekursiv durch alle im Datensatz enthaltenen Datensatzvariablen oder, im Fall eines strukturierten Datensatzes, bis zur untersten Ebene der Struktur. Einzelne Felder werden entsprechend ihren Typen gesetzt. Details zu diesen Werten finden Sie unter Dateninitialisierung.
- initial
- In einer Datensatzvariablen kann für jedes ihrer Felder ein Anfangswert angegeben werden. Der Änderungswert 'initial' setzt die Werte dieser Felder auf die in der Datensatzdefinition angegebenen Werte zurück. Werden in der Datensatzdefinition keine Anfangswerte angegeben, hat der Änderungswert 'initial' denselben Effekt wie der Änderungswert 'empty'.
- position
- Dieses Schlüsselwort ist nur für den Stereotyp 'IndexedRecord' verfügbar.
- Beim Stereotyp 'IndexedRecord' wird durch den Wert des in der Eigenschaft 'keyItem' angegebenen Felds festgelegt, wo der Datensatzzeiger positioniert wird. Anschließend können Sie mithilfe der Anweisung 'get next' oder 'get previous' auf die Datei zugreifen. Wenn das Schlüsselfeld auf null gesetzt ist, wird der Dateizeiger vor dem ersten Datensatz positioniert. Wenn das Schlüsselfeld mit dem hexadezimalen Wert FF gefüllt ist, wird der Dateizeiger nach dem letzten Datensatz positioniert.
Beispiel
Das folgende Beispiel zeigt die Verwendung der Anweisung 'set' mit einem indexierten Datensatz:
package com.companyb.customer;
Record IndexedRecordExample type IndexedRecord {
fileName = "C:\\temp\\indexfile.txt",
keyItem = indKey
}
10 indKey INT;
15 indKeyAsHex HEX(8);
10 indTitle CHAR(30);
10 indAuthor CHAR(30);
end
program readall
myIndexedRecord IndexedRecordExample;
Function main()
// 'indKey' wird auf 0 gesetzt, alle anderen Felder sind leer
set myIndexedRecord empty;
myIndexedRecord.indKeyAsHex = x"FFFFFFFF";
// Positionierung am Ende der Datei
set myIndexedRecord position;
...
end // Ende von 'main()'
end // Ende von 'program'