Did OPNQRYF Select any Records?

Business Intelligence
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

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 
BLOG COMMENTS POWERED BY DISQUS