


Maybe you do something like this:
pgm
dcl &int *int value( 0 )
dcl &rtnmbr *char 10
dcl &eom *lgl value( '0' )
dcl &nbrrcd *dec ( 10 0 ) value( 0 )
rtvmbrd toml/qclsrc +
mbr( *FIRSTMBR *SAME ) +
rtnmbr( &rtnmbr ) +
nbrcurrcd( &nbrrcd )
dowhile ( *not &eom )
sndpgmmsg msg( 'Counting' *bcat &rtnmbr )
chgvar &int ( &int + &nbrrcd )
rtvmbrd mylib/qclsrc +
mbr( &rtnmbr *NEXT ) +
rtnmbr( &rtnmbr ) +
nbrcurrcd( &nbrrcd )
monmsg ( CPF3049 ) exec( chgvar &eom '1' )
enddo
return
endpgm
Does that make sense? Test the logic on something like MYLIB/QCLSRC. It seems to work, but I haven't seriously tested it.
Tom
Thanks Tom
I got impatient and whipped up something myself.
*
<pre>
PGM PARM(&pLib &pFile &pRcdCnt)
DCL VAR(&pLib) TYPE(*CHAR) LEN(10)
DCL VAR(&pFile) TYPE(*CHAR) LEN(10)
DCL VAR(&pRcdCnt) TYPE(*CHAR) LEN(10)
DCL VAR(&vADD) TYPE(*Dec ) LEN(9 0)
/*——————————————————————-*/
/* Build file in QTEMP with Member List */
/*——————————————————————-*/
DltF Qtemp/QAFDMBR
MonMsg CPF0000
DSPFD &pLib/&pFile *MBR OUTPUT(*OUTFILE) +
OUTFILE(Qtemp/QAFDMBR)
/*——————————————————————-*/
/* Call RPGSQLI program to sum(NMBRCD) */
/*——————————————————————-*/
Call GetRcdCntR &pRcdCnt
/*——————————————————————-*/
/* Cleanup after yourself */
/*——————————————————————-*/
DltF Qtemp/QAFDMBR
MonMsg CPF0000
END: ENDPGM
D DS
D vRecCount 1 10S 0
D pCount# 1 10
* Entry Parm list
c *entry plist
c parm pCount 10
*===================================================================
*= Program Logic
*===================================================================
/free
exsr getCounts;
pCount = pCount#;
*inlr = *on;
// ================================================================
// GetCounts
// ================================================================
begsr GetCounts;
/end-free
c/exec sql
c+ select Sum(MBNRCD) into :vRecCount
c+ from QTEMP/QAFDMBR
c/end-exec
/free
endsr;</pre>



