Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID STADB09B.
- AUTHOR. BORDIN ALEX.
- *-----------------------------------------------
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT FILERIC ASSIGN TO FILERIC.
- *
- DATA DIVISION.
- *
- FILE SECTION.
- *
- FD FILERIC
- LABEL RECORD IS STANDARD.
- 01 REC-FILE-RIC PIC X(100).
- *
- WORKING-STORAGE SECTION.
- *
- 01 NOME-PGM PIC X(08) VALUE 'STADB09B'.
- *TRACCIATO FILE-RIC
- 01 W-REC-FILE-RIC.
- 03 W-FISCALE-RIC PIC X(16).
- 03 W-DATA-RICH-RIC PIC X(10).
- *COMODI
- 01 COMODI.
- 03 Z-SQL PIC -(04) VALUE ZERO.
- 01 W-DATA-SBAGLIATA PIC X(10).
- 01 FILLER REDIFINES W-DATA-ODIERNA.
- 03 W-GIORNO PIC X(02).
- 03 FILLER PIC X(01).
- 03 W-MESE PIC X(02).
- 03 FILLER PIC X(01).
- 03 W-ANNO PIC X(04).
- 01 W-DATA-OK PIC X(10).
- 01 FILLER REDIFINES W-DATA-OK.
- 03 W-ANNO-OK PIC X(04).
- 03 FILLER PIC X(01) VALUE '-'.
- 03 W-MESE-OK PIC X(02).
- 03 FILLER PIC X(01) VALUE '-'.
- 03 W-GIORNO-OK PIC X(02).
- *PER AMBEND
- 01 DAMP PIC X VALUE SPACE.
- 01 DUMP REDEFINES DAMP PIC S9.
- *INCLUDE TABELLE DB2
- EXEC SQL INCLUDE SQLCA END-EXEC.
- EXEC SQL INCLUDE VC00TA01 END-EXEC.
- EXEC SQL INCLUDE VC00TA02 END-EXEC.
- *CURSORI
- EXEC SQL DECLARE CURS-VC0ULTINFO CURSOR FOR
- SELECT *
- FROM VC0ULTINFO
- WHERE FISCALE_ULTINFO = :FISCALE-ULTINFO
- AND DATA_RICH_ULTINFO = :DATA-RICH-ULTINFO
- FOR FETCH ONLY
- END-EXEC.
- *COUNT
- 01 COUNT-FISCALE-INFO PIC S9(09) COMP-3 VALUE ZERO.
- *ALTRE VARIABILI
- 01 EOF-FILE-RIC PIC 9 VALUE ZERO.
- *CONTATORI
- 01 CONT-UPDATE PIC 9(06) VALUE ZERO.
- 01 CONT-NO-UPDATE PIC 9(06) VALUE ZERO.
- *
- PROCEDURE DIVISION.
- *
- MAIN.
- PERFORM INIZIO-PGM
- PERFORM LEGGI-FILE-RIC
- PERFORM ELABORA-RIC-DB UNTIL EOF-FILE-RIC = 1
- PERFORM DISPLAY-REPORT
- PERFORM FINE-PGM.
- .
- *----------------*
- INIZIO-PGM.
- *----------------*
- DISPLAY 'INIZIO PGM: 'NOME-PGM.
- OPEN INPUT FILERIC
- .
- *----------------*
- ELABORA-RIC-DB.
- *----------------*
- PERFORM COUNT-VC0INFO
- IF COUNT-FISCALE-INFO > 3 AND SQLCODE = 0
- PERFORM SISTEMA-DATA
- PERFORM OPEN-CURS-VC0ULTINFO
- PERFORM FETCH-CURS-VC0ULTINFO
- IF SQLCODE = 100
- ADD 1 TO CONT-NO-UPDATE
- END-IF
- PERFORM AGGIORNA-VC0INFO UNTIL SQLCODE = 100
- PERFORM CLOSE-CURS-VC0ULTINFO
- ELSE
- ADD 1 TO CONT-NO-UPDATE
- END-IF
- PERFORM LEGGI-FILE-RIC
- .
- *----------------*
- SISTEMA-DATA.
- *----------------*
- MOVE W-DATA-RICH-RIC TO W-DATA-SBAGLIATA
- MOVE W-ANNO TO W-ANNO-OK
- MOVE W-MESE TO W-MESE-OK
- MOVE W-GIORNO TO W-GIORNO-OK
- .
- *----------------*
- AGGIORNA-VC0INFO.
- *----------------*
- PERFORM UPDATE-VC0INFO
- PERFORM FETCH-CURS-VC0ULTINFO
- .
- *----------------*
- COUNT-VC0INFO.
- *----------------*
- INITIALIZE VC00TAB01
- INITIALIZE COUNT-FISCALE-INFO
- MOVE W-FISCALE-RIC TO FISCALE-INFO
- EXEC SQL
- SELECT COUNT(*)
- INTO :COUNT-FISCALE-INFO
- FROM VC0INFO
- WHERE FISCALE_INFO = :FISCALE-INFO
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN COUNT VC0ULTINFO'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE-ULTINFO: ' FISCALE-ULTINFO
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- UPDATE-VC0INFO.
- *----------------*
- INITIALIZE VC00TAB01
- MOVE W-DATA-OK TO DATA-RICHIESTA
- MOVE W-FISCALE-RIC TO FISCALE-INFO
- EXEC SQL
- UPDATE VC0INFO
- SET DATA_RICHIESTANFO = :DATA-RICHIESTA
- WHERE FISCALE_INFO = :FISCALE-INFO
- END-EXEC
- IF SQLCODE NOT = 100 AND NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN UPDATE IN TABELLA VC0INFO'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'FISCALE-INFO: ' FISCALE-INFO
- ADD 1 TO DUMP
- END-IF
- ADD 1 TO CONT-UPDATE
- .
- *----------------*
- LEGGI-FILE-RIC.
- *----------------*
- READ FILERIC INTO W-REC-FILE-RIC
- AT END MOVE 1 TO EOF-FILE-RIC
- .
- *----------------*
- OPEN-CURS-VC0ULTINFO
- *----------------*
- MOVE W-FISCALE-RIC TO FISCALE-ULTINFO
- MOVE W-DATA-OK TO DATA-RICH-ULTINFO
- EXEC SQL
- OPEN CURS-VC0ULTINFO
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN OPEN CURSORE'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'CURSORE: CURS-VC0ULTINFO'
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- FETCH-CURS-VC0ULTINFO
- *----------------*
- INITIALIZE VC00TAB02
- EXEC SQL
- FETCH CURS-VC0ULTINFO
- INTO :VC00TAB02
- END-EXEC
- IF SQLCODE NOT = 100 AND NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN FETCH CURSORE'
- DISPLAY 'CURSORE: CURS-VC0ULTINFO'
- DISPLAY 'SQLCODE: ' Z-SQL
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- CLOSE-CURS-VC0ULTINFO.
- *----------------*
- EXEC SQL
- CLOSE CURS-VC0ULTINFO
- END-EXEC
- IF SQLCODE NOT = 0
- MOVE SQLCODE TO Z-SQL
- DISPLAY 'ERRORE IN CLOSE CURSORE'
- DISPLAY 'SQLCODE: ' Z-SQL
- DISPLAY 'CURSORE: CURS-VC0ULTINFO'
- ADD 1 TO DUMP
- END-IF
- .
- *----------------*
- DISPLAY-REPORT.
- *----------------*
- DISPLAY 'RECORD AGGIORNATI: ' CONT-UPDATE
- DISPLAY 'RECORD NON-AGGIORNATI: ' CONT-NO-UPDATE
- .
- *----------------*
- FINE-PGM.
- *----------------*
- CLOSE FILERIC
- DISPLAY 'FINE PGM: 'NOME-PGM.
- GOBACK.
- .
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement