Advertisement
Guest User

Untitled

a guest
Jul 8th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 6.83 KB | None | 0 0
  1.     IDENTIFICATION DIVISION.
  2.        PROGRAM-ID STADB09B.
  3.        AUTHOR. BORDIN ALEX.
  4.       *-----------------------------------------------
  5.        ENVIRONMENT DIVISION.
  6.        INPUT-OUTPUT SECTION.
  7.        FILE-CONTROL.
  8.            SELECT FILERIC ASSIGN TO FILERIC.
  9.       *
  10.        DATA DIVISION.
  11.       *
  12.        FILE SECTION.
  13.       *
  14.        FD  FILERIC
  15.            LABEL RECORD IS STANDARD.
  16.        01  REC-FILE-RIC            PIC X(100).
  17.       *
  18.        WORKING-STORAGE SECTION.
  19.       *
  20.        01  NOME-PGM                PIC X(08) VALUE 'STADB09B'.
  21.  
  22.       *TRACCIATO FILE-RIC
  23.        01  W-REC-FILE-RIC.
  24.            03 W-FISCALE-RIC        PIC X(16).
  25.            03 W-DATA-RICH-RIC      PIC X(10).
  26.  
  27.       *COMODI
  28.        01  COMODI.
  29.            03 Z-SQL               PIC -(04)  VALUE ZERO.
  30.  
  31.        01  W-DATA-SBAGLIATA       PIC X(10).
  32.        01  FILLER REDIFINES W-DATA-ODIERNA.
  33.            03 W-GIORNO            PIC X(02).
  34.            03 FILLER              PIC X(01).
  35.            03 W-MESE              PIC X(02).
  36.            03 FILLER              PIC X(01).
  37.            03 W-ANNO              PIC X(04).
  38.  
  39.        01  W-DATA-OK              PIC X(10).
  40.        01  FILLER REDIFINES W-DATA-OK.
  41.            03 W-ANNO-OK           PIC X(04).
  42.            03 FILLER              PIC X(01) VALUE '-'.
  43.            03 W-MESE-OK           PIC X(02).
  44.            03 FILLER              PIC X(01) VALUE '-'.
  45.            03 W-GIORNO-OK         PIC X(02).
  46.  
  47.       *PER AMBEND
  48.        01  DAMP                   PIC X      VALUE SPACE.
  49.        01  DUMP REDEFINES DAMP    PIC S9.
  50.  
  51.  
  52.       *INCLUDE TABELLE DB2
  53.            EXEC SQL INCLUDE SQLCA     END-EXEC.
  54.            EXEC SQL INCLUDE VC00TA01  END-EXEC.
  55.            EXEC SQL INCLUDE VC00TA02  END-EXEC.
  56.  
  57.       *CURSORI
  58.        EXEC SQL DECLARE CURS-VC0ULTINFO CURSOR FOR
  59.         SELECT *
  60.         FROM VC0ULTINFO
  61.         WHERE FISCALE_ULTINFO  = :FISCALE-ULTINFO
  62.          AND DATA_RICH_ULTINFO = :DATA-RICH-ULTINFO
  63.         FOR FETCH ONLY
  64.        END-EXEC.
  65.  
  66.       *COUNT
  67.        01 COUNT-FISCALE-INFO      PIC S9(09) COMP-3 VALUE ZERO.
  68.  
  69.       *ALTRE VARIABILI
  70.        01  EOF-FILE-RIC           PIC 9      VALUE ZERO.
  71.  
  72.       *CONTATORI
  73.        01  CONT-UPDATE            PIC 9(06)  VALUE ZERO.
  74.        01  CONT-NO-UPDATE         PIC 9(06)  VALUE ZERO.
  75.       *
  76.        PROCEDURE DIVISION.
  77.       *
  78.        MAIN.
  79.            PERFORM INIZIO-PGM
  80.            PERFORM LEGGI-FILE-RIC
  81.  
  82.            PERFORM ELABORA-RIC-DB UNTIL EOF-FILE-RIC = 1
  83.  
  84.            PERFORM DISPLAY-REPORT
  85.            PERFORM FINE-PGM.
  86.            .
  87.       *----------------*
  88.        INIZIO-PGM.
  89.       *----------------*
  90.            DISPLAY 'INIZIO PGM: 'NOME-PGM.
  91.            OPEN INPUT FILERIC
  92.            .
  93.       *----------------*
  94.        ELABORA-RIC-DB.
  95.       *----------------*
  96.            PERFORM COUNT-VC0INFO
  97.            IF COUNT-FISCALE-INFO > 3 AND SQLCODE = 0
  98.               PERFORM SISTEMA-DATA
  99.               PERFORM OPEN-CURS-VC0ULTINFO
  100.               PERFORM FETCH-CURS-VC0ULTINFO
  101.               IF SQLCODE = 100
  102.                ADD 1 TO CONT-NO-UPDATE
  103.               END-IF
  104.               PERFORM AGGIORNA-VC0INFO UNTIL SQLCODE = 100
  105.               PERFORM CLOSE-CURS-VC0ULTINFO
  106.            ELSE
  107.               ADD 1 TO CONT-NO-UPDATE
  108.            END-IF
  109.            PERFORM LEGGI-FILE-RIC
  110.            .
  111.       *----------------*
  112.        SISTEMA-DATA.
  113.       *----------------*
  114.            MOVE W-DATA-RICH-RIC TO W-DATA-SBAGLIATA
  115.  
  116.            MOVE W-ANNO   TO W-ANNO-OK
  117.            MOVE W-MESE   TO W-MESE-OK
  118.            MOVE W-GIORNO TO W-GIORNO-OK
  119.            .
  120.       *----------------*
  121.        AGGIORNA-VC0INFO.
  122.       *----------------*
  123.            PERFORM UPDATE-VC0INFO
  124.            PERFORM FETCH-CURS-VC0ULTINFO
  125.            .
  126.       *----------------*
  127.        COUNT-VC0INFO.
  128.       *----------------*
  129.            INITIALIZE VC00TAB01
  130.            INITIALIZE COUNT-FISCALE-INFO
  131.  
  132.            MOVE W-FISCALE-RIC TO FISCALE-INFO
  133.  
  134.            EXEC SQL
  135.               SELECT COUNT(*)
  136.                  INTO :COUNT-FISCALE-INFO
  137.               FROM VC0INFO
  138.               WHERE FISCALE_INFO = :FISCALE-INFO
  139.            END-EXEC
  140.  
  141.            IF SQLCODE NOT = 0
  142.               MOVE SQLCODE TO Z-SQL
  143.               DISPLAY 'ERRORE IN COUNT VC0ULTINFO'
  144.               DISPLAY 'SQLCODE: ' Z-SQL
  145.               DISPLAY 'FISCALE-ULTINFO: ' FISCALE-ULTINFO
  146.               ADD 1 TO DUMP
  147.            END-IF
  148.            .
  149.       *----------------*
  150.        UPDATE-VC0INFO.
  151.       *----------------*
  152.            INITIALIZE VC00TAB01
  153.  
  154.            MOVE W-DATA-OK     TO DATA-RICHIESTA
  155.            MOVE W-FISCALE-RIC TO FISCALE-INFO
  156.  
  157.            EXEC SQL
  158.               UPDATE VC0INFO
  159.                  SET DATA_RICHIESTANFO = :DATA-RICHIESTA
  160.               WHERE FISCALE_INFO = :FISCALE-INFO
  161.            END-EXEC
  162.  
  163.            IF SQLCODE NOT = 100 AND NOT = 0
  164.               MOVE SQLCODE TO Z-SQL
  165.               DISPLAY 'ERRORE IN UPDATE IN TABELLA VC0INFO'
  166.               DISPLAY 'SQLCODE: ' Z-SQL
  167.               DISPLAY 'FISCALE-INFO: ' FISCALE-INFO
  168.               ADD 1 TO DUMP
  169.            END-IF
  170.            ADD 1 TO CONT-UPDATE
  171.            .
  172.       *----------------*
  173.        LEGGI-FILE-RIC.
  174.       *----------------*
  175.            READ FILERIC INTO W-REC-FILE-RIC
  176.               AT END MOVE 1 TO EOF-FILE-RIC
  177.            .
  178.       *----------------*
  179.        OPEN-CURS-VC0ULTINFO
  180.       *----------------*
  181.            MOVE W-FISCALE-RIC TO FISCALE-ULTINFO
  182.            MOVE W-DATA-OK     TO DATA-RICH-ULTINFO
  183.  
  184.            EXEC SQL
  185.             OPEN CURS-VC0ULTINFO
  186.            END-EXEC
  187.  
  188.            IF SQLCODE NOT = 0
  189.               MOVE SQLCODE TO Z-SQL
  190.               DISPLAY 'ERRORE IN OPEN CURSORE'
  191.               DISPLAY 'SQLCODE: ' Z-SQL
  192.               DISPLAY 'CURSORE: CURS-VC0ULTINFO'
  193.               ADD 1 TO DUMP
  194.            END-IF
  195.            .
  196.       *----------------*
  197.        FETCH-CURS-VC0ULTINFO
  198.       *----------------*
  199.            INITIALIZE VC00TAB02
  200.  
  201.            EXEC SQL
  202.             FETCH CURS-VC0ULTINFO
  203.             INTO :VC00TAB02
  204.            END-EXEC
  205.  
  206.            IF SQLCODE NOT = 100 AND NOT = 0
  207.               MOVE SQLCODE TO Z-SQL
  208.               DISPLAY 'ERRORE IN FETCH CURSORE'
  209.               DISPLAY 'CURSORE: CURS-VC0ULTINFO'
  210.               DISPLAY 'SQLCODE: ' Z-SQL
  211.               ADD 1 TO DUMP
  212.            END-IF
  213.            .
  214.       *----------------*
  215.        CLOSE-CURS-VC0ULTINFO.
  216.       *----------------*
  217.            EXEC SQL
  218.             CLOSE CURS-VC0ULTINFO
  219.            END-EXEC
  220.  
  221.            IF SQLCODE NOT = 0
  222.               MOVE SQLCODE TO Z-SQL
  223.               DISPLAY 'ERRORE IN CLOSE CURSORE'
  224.               DISPLAY 'SQLCODE: ' Z-SQL
  225.               DISPLAY 'CURSORE: CURS-VC0ULTINFO'
  226.               ADD 1 TO DUMP
  227.            END-IF
  228.            .
  229.       *----------------*
  230.        DISPLAY-REPORT.
  231.       *----------------*
  232.            DISPLAY 'RECORD AGGIORNATI: ' CONT-UPDATE
  233.            DISPLAY 'RECORD NON-AGGIORNATI: ' CONT-NO-UPDATE
  234.            .
  235.       *----------------*
  236.        FINE-PGM.
  237.       *----------------*
  238.            CLOSE FILERIC
  239.            DISPLAY 'FINE PGM: 'NOME-PGM.
  240.            GOBACK.
  241.            .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement