On Tue, 29 May 2018 19:12:32 +0000, Frank Swarbrick wrote: >Test 1 - both DVFJS.DUMMY1 and DVFJS.DUMMY2 are "un-initialized" (HI-U-RBA is >0): > > REPRO IDS(DVFJS.DUMMY1) ODS(DVFJS.DUMMY2) >IDC3300I ERROR OPENING DVFJS.DUMMY1 >IDC3351I ** VSAM OPEN RETURN CODE IS 160 >IDC0005I NUMBER OF RECORDS PROCESSED WAS 0 >IDC3003I FUNCTION TERMINATED. CONDITION CODE IS 12 > >Test 2 - after adding a record to DVFJS.DUMMY1, and then deleting the record >(HI-U-RBA is now 829440): > > REPRO IDS(DVFJS.DUMMY1) ODS(DVFJS.DUMMY2) >IDC0005I NUMBER OF RECORDS PROCESSED WAS 0 >IDC0001I FUNCTION COMPLETED, HIGHEST CONDITION CODE WAS 0 > >In this latter case DVFJS.DUMMY2 remains "un-initialized" (HI-U-RBA is still >0). > And I suppose it still ABENDs if you attempt to read a record or to REPRO again DUMMY2 to DUMMY3? Ugh!
I believe this demonstrates the utter folly of testing at the bottom of a loop rather than at the top. A WHILE loop doesn't attempt to access a record when there is none; an UNTIL loop attempts to process one record regardless. I'm not very sympathetic to the argumemt of performance, that UNTIL performs the test N times but WHILE performs it N+1. Imagine "ls" or "dir" or "BLDL"'s ABENDing on an empty directory! (Does ISPF member list still report an error on an empty directory, or just show an empty screen except for header lines?) -- gil ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
