The following table matches the values specified on the IS or IS_NOT parameters with the actual I/O return codes. For more information, refer to I/O Return Codes:
Parameter Value
I/O Return Code
*OKAY
'OK'
*VALERROR
'VE'
*ERROR
'ER'
*NORECORD
'NR'
*ENDFILE
'EF'
*BEGINFILE
'BF'
*NOTEQUALKEY
'NE'
*EQUALKEY
'EQ'
IF_STATUS does NOT check the value of #IO$STS. IF_STATUS simply returns the status of the last database I/O command. In many cases this will be the same as IF COND(#IO$STS *EQ {Some Value}). However it should be noted that in the following cases these statements will be different:
When #IO$STS is being set through an Output mapping of a MthRoutine.
When #IO$STS is being set through an Output mapping of a SubRoutine.
When #IO$STS is being used in the TO_GET parameter of a USE command.
When #IO$STS is EXCHANGE'ed from another program/function.