How will you detect the condition of the end of cursor rows in a COBOL-DB2 program?


The cursor can be used to fetch multiple rows from a DB2 table. However, we have to fetch this cursor in a loop so that values corresponding to a single row are assigned to host variables at a time. Based on this logic we have to process our loop till the cursor reaches the last row result.

The SQLCODE field takes the value as 100 when there are no more rows left in the cursor to be fetched. Practically, we can implement this in the following way.

SET WF-END-CURSOR-N TO TRUE
PERFORM UNTIL WF-END-CURSOR-Y
   EXEC SQL
      FETCH ORDER_CUR INTO :ORDER-ID
   END-EXEC
   IF SQLCODE = 100
      SET WF-END-CURSOR-Y TO TRUE
   ELSE
      PERFORM A20-PROCESS-RECORD
   END-IF
END-PERFORM

WF-END-CURSOR-Y and WF-END-CURSOR-N are two flags at 88 level which is used to control the loop. Once the SQLCODE has the value 100 that means the cursor has reached at the last row and loop is terminated.

Updated on: 14-Sep-2020

949 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements