/* PROGRAM: V87_CL */ /* AUTHOR : Victor Voilevitch */ /* DATE : 15 Nov 1998 */ /* */ /* DESCRIPTION: */ /* Utility program that run query */ /* for the member in file */ /* */ /* PARAMETERS: */ /* &LIB - library */ /* &FILE - file */ /* &MEMBER - member */ /* &NREC - number of records in &MEMBER */ /* &PERR - error flag */ /* return '0' if successful complete */ /* '1' if error */ /* */ /* ================================================================= */ PGM PARM(&LIB &FILE &MEMBER &NREC &PERR) DCL VAR(&LIB) TYPE(*CHAR) LEN(10) DCL VAR(&FILE) TYPE(*CHAR) LEN(10) DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) DCL VAR(&NREC) TYPE(*DEC) LEN(10 0) DCL VAR(&PERR) TYPE(*CHAR) LEN(1) DCL VAR(&SNREC) TYPE(*CHAR) LEN(20) VALUE(*BLANKS) DCL VAR(&SSREC) TYPE(*CHAR) LEN(20) VALUE(*BLANKS) DCL VAR(&POS) TYPE(*DEC) LEN(2) VALUE(1) DCL VAR(&LEN) TYPE(*DEC) LEN(2) DCL VAR(&RCDSEL) TYPE(*CHAR) LEN(1) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(STDERR)) /********************************************************************/ /* Start Of Program */ /********************************************************************/ CHGVAR VAR(&PERR) VALUE('0') CHGVAR VAR(&SNREC) VALUE(&NREC) START: /* Remove leading zeroes */ IF COND((%SST(&SNREC &POS 1)) = '0') + THEN(CHGVAR VAR(%SST(&SNREC &POS 1)) + VALUE(' ')) ELSE CMD(GOTO CMDLBL(DONE)) CHGVAR VAR(&POS) VALUE(&POS + 1) IF COND(&POS < 20) THEN(GOTO CMDLBL(START)) DONE: CHGVAR VAR(&LEN) VALUE(21 - &POS) CHGVAR VAR(&SSREC) VALUE(%SST(&SNREC &POS &LEN)) SNDPGMMSG MSG(&LIB *TCAT '/' *TCAT &FILE *TCAT ': in + member' *BCAT &MEMBER *BCAT &SSREC *BCAT + 'records (entries)') TOPGMQ(*EXT) IF COND(&NREC > 0) THEN(DO) OVRDBF FILE(&FILE) TOFILE(&LIB/&FILE) MBR(&MEMBER) /* Retrieve additional parameter from userspace */ CALL PGM(QUSRTVUS) PARM('VRUNQRYCUSQTEMP' + X'00000001' X'00000001' &RCDSEL) MONMSG MSGID(CPF0000) IF COND(&RCDSEL = 'Y') THEN(RUNQRY + QRYFILE((&FILE)) RCDSLT(*YES)) ELSE CMD(RUNQRY QRYFILE((&FILE))) DLTOVR FILE(&FILE) ENDDO GOTO CMDLBL(END) STDERR: CHGVAR VAR(&PERR) VALUE('1') END: ENDPGM