1. The other program finishes its update before your program fetches its first row.
2. Your program fetches every row before the other program has a chance to update it.
3. After your program fetches some original rows, the other program catches up and goes on to update some rows that your program has yet to read; then it executes the COMMIT WORK statement.
4. Same as number 3, except that after updating the table, the other program issues a ROLLBACK WORK statement.