|
53 | 53 | * SQL INCLUDE FOR SQLCA * |
54 | 54 | ***************************************************** |
55 | 55 | EXEC SQL INCLUDE SQLCA END-EXEC. |
| 56 | + ***************************************************** |
| 57 | + * DECLARATIONS FOR SQL ERROR HANDLING * |
| 58 | + ***************************************************** |
| 59 | + 01 ERROR-MESSAGE. |
| 60 | + 02 ERROR-LEN PIC S9(4) COMP VALUE +1320. |
| 61 | + 02 ERROR-TEXT PIC X(132) OCCURS 10 TIMES |
| 62 | + INDEXED BY ERROR-INDEX. |
| 63 | + 77 ERROR-TEXT-LEN PIC S9(9) COMP VALUE +132. |
| 64 | + 77 ERROR-TEXT-HBOUND PIC S9(9) COMP VALUE +10. |
| 65 | + * USER DEFINED ERROR MESSAGE |
| 66 | + 01 UD-ERROR-MESSAGE PIC X(80) VALUE SPACES. |
56 | 67 | ***************************************************** |
57 | 68 | * SQL DECLARATION FOR VIEW ACCOUNTS * |
58 | 69 | ***************************************************** |
|
120 | 131 | * |
121 | 132 | GET-ALL. |
122 | 133 | EXEC SQL OPEN CUR1 END-EXEC. |
| 134 | + IF SQLCODE NOT = 0 THEN |
| 135 | + MOVE 'OPEN CUR1' TO UD-ERROR-MESSAGE |
| 136 | + PERFORM SQL-ERROR-HANDLING |
| 137 | + END-IF |
123 | 138 | EXEC SQL FETCH CUR1 INTO :CUSTOMER-RECORD END-EXEC. |
124 | | - PERFORM PRINT-ALL |
| 139 | + PERFORM PRINT-ALL |
125 | 140 | UNTIL SQLCODE IS NOT EQUAL TO ZERO. |
| 141 | + IF SQLCODE NOT = 100 THEN |
| 142 | + MOVE 'FETCH CUR1' TO UD-ERROR-MESSAGE |
| 143 | + PERFORM SQL-ERROR-HANDLING |
| 144 | + END-IF |
126 | 145 | EXEC SQL CLOSE CUR1 END-EXEC. |
| 146 | + IF SQLCODE NOT = 0 THEN |
| 147 | + MOVE 'CLOSE CUR1' TO UD-ERROR-MESSAGE |
| 148 | + PERFORM SQL-ERROR-HANDLING |
| 149 | + END-IF |
| 150 | + . |
127 | 151 | * |
128 | 152 | PRINT-ALL. |
129 | 153 | PERFORM PRINT-A-LINE. |
130 | 154 | EXEC SQL FETCH CUR1 INTO :CUSTOMER-RECORD END-EXEC. |
131 | 155 | * |
132 | 156 | GET-SPECIFIC. |
133 | 157 | EXEC SQL OPEN CUR2 END-EXEC. |
| 158 | + IF SQLCODE NOT = 0 THEN |
| 159 | + MOVE 'OPEN CUR2' TO UD-ERROR-MESSAGE |
| 160 | + PERFORM SQL-ERROR-HANDLING |
| 161 | + END-IF |
134 | 162 | EXEC SQL FETCH CUR2 INTO :CUSTOMER-RECORD END-EXEC. |
135 | | - PERFORM PRINT-SPECIFIC |
| 163 | + PERFORM PRINT-SPECIFIC |
136 | 164 | UNTIL SQLCODE IS NOT EQUAL TO ZERO. |
| 165 | + IF SQLCODE NOT = 100 THEN |
| 166 | + MOVE 'FETCH CUR2' TO UD-ERROR-MESSAGE |
| 167 | + PERFORM SQL-ERROR-HANDLING |
| 168 | + END-IF |
137 | 169 | EXEC SQL CLOSE CUR2 END-EXEC. |
| 170 | + IF SQLCODE NOT = 0 THEN |
| 171 | + MOVE 'CLOSE CUR2' TO UD-ERROR-MESSAGE |
| 172 | + PERFORM SQL-ERROR-HANDLING |
| 173 | + END-IF |
| 174 | + . |
138 | 175 | * |
139 | 176 | PRINT-SPECIFIC. |
140 | 177 | PERFORM PRINT-A-LINE. |
|
148 | 185 | MOVE ACCT-FIRSTN TO ACCT-FIRSTN-O. |
149 | 186 | MOVE ACCT-COMMENT TO ACCT-COMMENT-O. |
150 | 187 | WRITE REPREC AFTER ADVANCING 2 LINES. |
| 188 | + |
| 189 | + SQL-ERROR-HANDLING. |
| 190 | + DISPLAY 'ERROR AT ' FUNCTION TRIM(UD-ERROR-MESSAGE, TRAILING) |
| 191 | + CALL 'DSNTIAR' USING SQLCA ERROR-MESSAGE ERROR-TEXT-LEN. |
| 192 | + PERFORM VARYING ERROR-INDEX FROM 1 BY 1 |
| 193 | + UNTIL ERROR-INDEX > ERROR-TEXT-HBOUND |
| 194 | + OR ERROR-TEXT(ERROR-INDEX) = SPACES |
| 195 | + DISPLAY FUNCTION TRIM(ERROR-TEXT(ERROR-INDEX), TRAILING) |
| 196 | + END-PERFORM |
| 197 | + IF SQLCODE NOT = 0 AND SQLCODE NOT = 100 |
| 198 | + MOVE 1000 TO RETURN-CODE |
| 199 | + STOP RUN |
| 200 | + END-IF |
| 201 | + . |
0 commit comments