In various situations, it is important to know if at least one record was selected after running the Open Query File (OPNQRYF) command. If no records were selected, you would want to take an appropriate action. I have created a technique that allows you to determine if any records were selected by an OPNQRYF command. 3 presents a sample usage of the technique. In this example, I skip execution of the program and issue a meaningful message to an external message queue when no records are selected.
In various situations, it is important to know if at least one record was selected after running the Open Query File (OPNQRYF) command. If no records were selected, you would want to take an appropriate action. I have created a technique that allows you to determine if any records were selected by an OPNQRYF command. Figure 3 presents a sample usage of the technique. In this example, I skip execution of the program and issue a meaningful message to an external message queue when no records are selected.
- Ira Shapiro
Did OPNQRYF Select any Records?
Figure 3 Determining If OPNQRYF Selected Any Records
PGM DCL VAR(&QRYSLT) TYPE(*CHAR) LEN(128) DCL VAR(&NBRCURRCD) TYPE(*DEC) LEN(10) CHGVAR VAR(&QRYSLT) VALUE('LSSTE *EQ "PA"') OVRDBF FILE(LIST) SHARE(*YES) OPNQRYF FILE((LIST LIST)) QRYSLT(&QRYSLT) + KEYFLD((LSSUB) (LSTITL)) CRTPF FILE(QTEMP/TEMPFILE) RCDLEN(1) MONMSG MSGID(CPF7302) CPYFRMQRYF FROMOPNID(LIST) TOFILE(QTEMP/TEMPFILE) + MBROPT(*REPLACE) NBRRCDS(1) FMTOPT(*NOCHK) posdbf list *start RTVMBRD FILE(TEMPFILE) NBRCURRCD(&NBRCURRCD) IF COND(&NBRCURRCD > 0) THEN(DO) SNDPGMMSG MSG('Records exist in file.') TOPGMQ(*EXT) ENDDO ELSE CMD(DO) SNDPGMMSG MSG('No records were selected from file by + QRYSLT(' *BCAT &QRYSLT *BCAT ')') + TOPGMQ(*EXT) ENDDO CLOF OPNID(LIST) DLTOVR FILE(LIST) ENDPGM
LATEST COMMENTS
MC Press Online