|
| 1 | + IDENTIFICATION DIVISION. 00010000 |
| 2 | + *----------------------- 00020000 |
| 3 | + PROGRAM-ID. CBLDB21 00021000 |
| 4 | + AUTHOR. Otto B. Relational 00022000 |
| 5 | + 00040000 |
| 6 | + ENVIRONMENT DIVISION. 01290000 |
| 7 | + *-------------------- 01300000 |
| 8 | + CONFIGURATION SECTION. 01310000 |
| 9 | + INPUT-OUTPUT SECTION. 01330000 |
| 10 | + FILE-CONTROL. 01340000 |
| 11 | + SELECT REPOUT 01370000 |
| 12 | + ASSIGN TO UT-S-REPORT. 01380000 |
| 13 | + 01390000 |
| 14 | + DATA DIVISION. 01400000 |
| 15 | + *------------- 01410000 |
| 16 | + FILE SECTION. 01420000 |
| 17 | + FD REPOUT 01490000 |
| 18 | + RECORD CONTAINS 120 CHARACTERS 01500000 |
| 19 | + LABEL RECORDS ARE OMITTED 01510000 |
| 20 | + DATA RECORD IS REPREC. 01520000 |
| 21 | + 01521000 |
| 22 | + 01 REPREC. 01530000 |
| 23 | + 05 ACCT-NO-O PIC X(8). 01541000 |
| 24 | + 05 ACCT-LIMIT-O PIC $$,$$$,$$9.99. 01542000 |
| 25 | + 05 ACCT-BALANCE-O PIC $$,$$$,$$9.99. 01543000 |
| 26 | + 05 ACCT-LASTN-O PIC X(20). 01544000 |
| 27 | + 05 ACCT-FIRSTN-O PIC X(15). 01545000 |
| 28 | + 05 ACCT-COMMENT-O PIC X(50). 01546000 |
| 29 | + 01547000 |
| 30 | + WORKING-STORAGE SECTION. 01550000 |
| 31 | + ***************************************************** 02531000 |
| 32 | + * SQL INCLUDE FOR SQLCA * 02532000 |
| 33 | + ***************************************************** 02533000 |
| 34 | + EXEC SQL INCLUDE SQLCA END-EXEC. 02534000 |
| 35 | + ***************************************************** 02535000 |
| 36 | + * SQL DECLARATION FOR VIEW ACCOUNTS * 02536000 |
| 37 | + ***************************************************** 02537000 |
| 38 | + EXEC SQL DECLARE Z#####T TABLE 02538000 |
| 39 | + (ACCTNO CHAR(8) NOT NULL, 02539000 |
| 40 | + LIMIT DECIMAL(9,2) , 02539100 |
| 41 | + BALANCE DECIMAL(9,2) , 02539200 |
| 42 | + SURNAME CHAR(20) NOT NULL, 02539300 |
| 43 | + FIRSTN CHAR(15) NOT NULL, 02539400 |
| 44 | + ADDRESS1 CHAR(25) NOT NULL, 02539500 |
| 45 | + ADDRESS2 CHAR(20) NOT NULL, 02539600 |
| 46 | + ADDRESS3 CHAR(15) NOT NULL, 02539700 |
| 47 | + RESERVED CHAR(7) NOT NULL, 02539800 |
| 48 | + COMMENTS CHAR(50) NOT NULL) 02539900 |
| 49 | + END-EXEC. 02540100 |
| 50 | + ***************************************************** 02540200 |
| 51 | + * SQL CURSORS * 02540300 |
| 52 | + ***************************************************** 02540400 |
| 53 | + EXEC SQL DECLARE CUR1 CURSOR FOR 02540700 |
| 54 | + SELECT * FROM Z#####T 02540900 |
| 55 | + END-EXEC. 02541000 |
| 56 | + ***************************************************** 02542000 |
| 57 | + * STRUCTURE FOR CUSTOMER RECORD * 02543000 |
| 58 | + ***************************************************** 02544000 |
| 59 | + 01 CUSTOMER-RECORD. 02545000 |
| 60 | + 02 ACCT-NO PIC X(8). 02546000 |
| 61 | + 02 ACCT-LIMIT PIC S9(7)V99 COMP-3. 02547000 |
| 62 | + 02 ACCT-BALANCE PIC S9(7)V99 COMP-3. 02548000 |
| 63 | + 02 ACCT-LASTN PIC X(20). 02549000 |
| 64 | + 02 ACCT-FIRSTN PIC X(15). 02550000 |
| 65 | + 02 ACCT-ADDR1 PIC X(25). 02560000 |
| 66 | + 02 ACCT-ADDR2 PIC X(20). 02570000 |
| 67 | + 02 ACCT-ADDR3 PIC X(15). 02580000 |
| 68 | + 02 ACCT-RSRVD PIC X(7). 02590000 |
| 69 | + 02 ACCT-COMMENT PIC X(50). 02600000 |
| 70 | + 03280000 |
| 71 | + PROCEDURE DIVISION. 03290000 |
| 72 | + *------------------ 03300000 |
| 73 | + 03310000 |
| 74 | + ***************************************************** 03390000 |
| 75 | + * MAIN PROGRAM ROUTINE * 03400000 |
| 76 | + ***************************************************** 03410000 |
| 77 | + PROG-START. 03420000 |
| 78 | + OPEN OUTPUT REPOUT. 03450000 |
| 79 | + PERFORM LIST-ALL. 03520000 |
| 80 | + PROG-END. 03540000 |
| 81 | + CLOSE REPOUT. 03570000 |
| 82 | + GOBACK. 03580006 |
| 83 | + ***************************************************** 04270000 |
| 84 | + * LIST ALL CLIENTS * 04280000 |
| 85 | + ***************************************************** 04290000 |
| 86 | + LIST-ALL. 04300000 |
| 87 | + EXEC SQL OPEN CUR1 END-EXEC. 04320000 |
| 88 | + EXEC SQL FETCH CUR1 INTO :CUSTOMER-RECORD END-EXEC. 04350000 |
| 89 | + PERFORM PRINT-AND-GET1 04470000 |
| 90 | + UNTIL SQLCODE IS NOT EQUAL TO ZERO. 04480000 |
| 91 | + EXEC SQL CLOSE CUR1 END-EXEC. 04510000 |
| 92 | + PRINT-AND-GET1. 04530000 |
| 93 | + PERFORM PRINT-A-LINE. 04540000 |
| 94 | + EXEC SQL FETCH CUR1 INTO :CUSTOMER-RECORD END-EXEC. 04560000 |
| 95 | + PRINT-A-LINE. 05200000 |
| 96 | + MOVE ACCT-NO TO ACCT-NO-O. 05220000 |
| 97 | + MOVE ACCT-LIMIT TO ACCT-LIMIT-O. 05230000 |
| 98 | + MOVE ACCT-BALANCE TO ACCT-BALANCE-O. 05240000 |
| 99 | + MOVE ACCT-LASTN TO ACCT-LASTN-O. 05250000 |
| 100 | + MOVE ACCT-FIRSTN TO ACCT-FIRSTN-O. 05260000 |
| 101 | + MOVE ACCT-COMMENT TO ACCT-COMMENT-O. 05270000 |
| 102 | + WRITE REPREC AFTER ADVANCING 2 LINES. 05310000 |
0 commit comments