Hallo,

zur Klarstellung:
1. Bei READ/READE/READC/READP/READP kann der %EOF bedenkenlos abgefragt werden.

2. Für CHAIN/OPEN/SETGT/SETLL kann der %EOF erst ab Release V5R1M0 abgefragt werden.
Der %EOF(FILE) wird auf *OFF gesetzt, wenn die Operation erfolgreich war, anderenfalls bleibt %EOF(FILE) unverändert.
%EOF ohne Parameter darf nicht abgefragt werden, weil er unverändert bleibt.
Beispiel:
1. Key Chain FILE
If not %EOF(FILE)
2. Key Chain File
if not %EOF
Im ersten Beispiel wird ein Satz gefunden und in die If-Verarbeitung verzweigt.
Im zweiten Beispiel wird ein Satz gefunden, jedoch nur in die IF-Verarbeitung verzweigt, wenn %EOF in einem vorgelagerten Statement gesetzt wurde.

Bei CHAIN wird %FOUND auf *ON gesetzt, wenn der Satz eingelesen wurde.

Bei SETLL zeigt der %EQUAL an, dass ein Satz mit dem gleichen Schlüssel gefunden wurde, was dem %FOUND bei CHAIN entspricht.
Bei SETLL wird der %FOUND auf *ON gesetzt, wenn ein folgender READ erfolgreich wäre, das heisst jedoch nicht, dass ein Satz mit dem angegebnenen Schlüssel gefunden wurde.

Birgitta