1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
01 FLAG-SORTIE-FETCH PIC X(001).
88 SORTIE-FETCH-OUI VALUE 'O'.
88 SORTIE-FETCH-NON VALUE 'N'.
(.../...)
PERFORM OPEN-BASE
THRU OPEN-BASE-FIN
SET SORTIE-FETCH-NON TO TRUE
PERFORM TRAITEMENT-FETCH
THRU TRAITEMENT-FETCH-FIN
UNTIL SORTIE-FETCH-OUI
PERFORM CLOSE-BASE
THRU CLOSE-BASE-FIN
(.../...)
TRAITEMENT-FETCH.
PERFORM FETCH-BASE
THRU FETCH-BASE-FIN
EVALUATE TRUE
WHEN W=0
COMPUTE P = 0
SET SORTIE-FETCH-OUI TO TRUE
WHEN P<W
CONTINUE
WHEN OTHER
COMPUTE P = W
SET SORTIE-FETCH-OUI TO TRUE
END-EVALUATE
.
TRAITEMENT-FETCH-FIN. EXIT.
(.../...)
FETCH-BASE.
EXEC SQL
FETCH FROM C
INTO :W
END-EXEC
(plus traitement d'erreur, qui inclut :)
EVALUATE SQLCODE
WHEN ZERO
CONTINUE
WHEN +100
SET SORTIE-FETCH-OUI TO TRUE
WHEN OTHER
DISPLAY 'ERREUR MAJEURE SQL : "' SQLCODE '"'
CALL ABEND(enfin, un truc qui arrête ton programme, le standard dans ta boite)
END-EVALUATE
.
FETCH-BASE-FIN. EXIT. |