* Declare the cursor EXEC ADO DECLARE c1 DATAROWS FROM oline END-EXEC * Open the cursor EXEC ADO OPEN c1 END-EXEC * Modify the table using positioned updates and deletes PERFORM UNTIL EXIT * Delete row 1, 4, 7, ... EXEC ADO FETCH c1 INTO :oline END-EXEC IF SQLCODE NOT = 0 EXIT PERFORM END-IF EXEC ADO DELETE FROM oline WHERE CURRENT OF c1 END-EXEC * Update row 2, 5, 8, ... EXEC ADO FETCH c1 INTO :oline END-EXEC IF SQLCODE NOT = 0 EXIT PERFORM END-IF MOVE 99 TO qty EXEC ADO UPDATE oline SET qty = :qty WHERE CURRENT OF c1 END-EXEC * Leave alone row 3, 6, 9, ... EXEC ADO FETCH c1 INTO :oline END-EXEC IF SQLCODE NOT = 0 EXIT PERFORM END-IF END-PERFORM