|
36 | 36 | * SQL INCLUDE FOR SQLCA * |
37 | 37 | ***************************************************** |
38 | 38 | EXEC SQL INCLUDE SQLCA END-EXEC. |
| 39 | + ***************************************************** |
| 40 | + * DECLARATIONS FOR SQL ERROR HANDLING * |
| 41 | + ***************************************************** |
| 42 | + 01 ERROR-MESSAGE. |
| 43 | + 02 ERROR-LEN PIC S9(4) COMP VALUE +1320. |
| 44 | + 02 ERROR-TEXT PIC X(132) OCCURS 10 TIMES |
| 45 | + INDEXED BY ERROR-INDEX. |
| 46 | + 77 ERROR-TEXT-LEN PIC S9(9) COMP VALUE +132. |
| 47 | + 77 ERROR-TEXT-HBOUND PIC S9(9) COMP VALUE +10. |
| 48 | + * USER DEFINED ERROR MESSAGE |
| 49 | + 01 UD-ERROR-MESSAGE PIC X(80) VALUE SPACES. |
39 | 50 | ***************************************************** |
40 | 51 | * SQL DECLARATION FOR VIEW ACCOUNTS * |
41 | 52 | ***************************************************** |
|
89 | 100 | ***************************************************** |
90 | 101 | LIST-ALL. |
91 | 102 | EXEC SQL OPEN CUR1 END-EXEC. |
| 103 | + IF SQLCODE NOT = 0 THEN |
| 104 | + MOVE 'OPEN CUR1' TO UD-ERROR-MESSAGE |
| 105 | + PERFORM SQL-ERROR-HANDLING |
| 106 | + END-IF |
92 | 107 | EXEC SQL FETCH CUR1 INTO :CUSTOMER-RECORD END-EXEC. |
93 | 108 | PERFORM PRINT-AND-GET1 |
94 | 109 | UNTIL SQLCODE IS NOT EQUAL TO ZERO. |
| 110 | + IF SQLCODE NOT = 100 THEN |
| 111 | + MOVE 'FETCH CUR1' TO UD-ERROR-MESSAGE |
| 112 | + PERFORM SQL-ERROR-HANDLING |
| 113 | + END-IF |
95 | 114 | EXEC SQL CLOSE CUR1 END-EXEC. |
| 115 | + IF SQLCODE NOT = 0 THEN |
| 116 | + MOVE 'CLOSE CUR1' TO UD-ERROR-MESSAGE |
| 117 | + PERFORM SQL-ERROR-HANDLING |
| 118 | + END-IF |
| 119 | + . |
96 | 120 | PRINT-AND-GET1. |
97 | 121 | PERFORM PRINT-A-LINE. |
98 | 122 | EXEC SQL FETCH CUR1 INTO :CUSTOMER-RECORD END-EXEC. |
|
104 | 128 | MOVE ACCT-FIRSTN TO ACCT-FIRSTN-O. |
105 | 129 | MOVE ACCT-COMMENT TO ACCT-COMMENT-O. |
106 | 130 | WRITE REPREC AFTER ADVANCING 2 LINES. |
| 131 | + |
| 132 | + SQL-ERROR-HANDLING. |
| 133 | + DISPLAY 'ERROR AT ' FUNCTION TRIM(UD-ERROR-MESSAGE, TRAILING) |
| 134 | + CALL 'DSNTIAR' USING SQLCA ERROR-MESSAGE ERROR-TEXT-LEN. |
| 135 | + PERFORM VARYING ERROR-INDEX FROM 1 BY 1 |
| 136 | + UNTIL ERROR-INDEX > ERROR-TEXT-HBOUND |
| 137 | + OR ERROR-TEXT(ERROR-INDEX) = SPACES |
| 138 | + DISPLAY FUNCTION TRIM(ERROR-TEXT(ERROR-INDEX), TRAILING) |
| 139 | + END-PERFORM |
| 140 | + IF SQLCODE NOT = 0 AND SQLCODE NOT = 100 |
| 141 | + MOVE 1000 TO RETURN-CODE |
| 142 | + STOP RUN |
| 143 | + END-IF |
| 144 | + . |
0 commit comments