Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 000100 IDENTIFICATION DIVISION.
- 000200 PROGRAM-ID. DBCommunication.
- ENVIRONMENT DIVISION.
- INPUT-OUTPUT SECTION.
- FILE-CONTROL.
- SELECT inputfile ASSIGN USING abspad
- ORGANIZATION IS LINE SEQUENTIAL
- FILE STATUS IS file-status.
- SELECT logfile ASSIGN TO "logfile"
- ORGANIZATION IS LINE SEQUENTIAL.
- SELECT errorlogfile ASSIGN TO "errorlogfile"
- ORGANIZATION IS LINE SEQUENTIAL.
- DATA DIVISION.
- FILE SECTION.
- FD inputfile.
- 01 inputrecord.
- 02 karstring pic x(150).
- FD logfile.
- 01 logrecord.
- 02 logdatum.
- * 02 lWS-DATE-WORK-AREA pic x(16) value "CCYYMMDDhhmmssms".
- 04 lCC pic xx.
- 04 lYY pic xx.
- 04 filler value "-".
- 04 lMM pic xx.
- 04 filler value "-".
- 04 lDD pic xx.
- 04 filler value " ".
- 04 lhh pic xx.
- 04 filler value ":".
- 04 lminutes pic xx.
- 04 filler value ":".
- 04 lss pic xx.
- 04 filler pic x value ":".
- 04 lms pic xx.
- 02 lstudentnr pic x(8).
- 02 lbericht pic x(40).
- FD errorlogfile.
- 01 elogrecord.
- 02 elogdatum.
- * 02 lWS-DATE-WORK-AREA pic x(16) value "CCYYMMDDhhmmssms".
- 04 elCC pic xx.
- 04 elYY pic xx.
- 04 filler value "-".
- 04 elMM pic xx.
- 04 filler value "-".
- 04 elDD pic xx.
- 04 filler value " ".
- 04 elhh pic xx.
- 04 filler value ":".
- 04 elminutes pic xx.
- 04 filler value ":".
- 04 elss pic xx.
- 04 filler pic x value ":".
- 04 elms pic xx.
- 02 elbericht pic x(40).
- 02 elstudentnr pic x(8).
- WORKING-STORAGE SECTION.
- COPY DBUitvoer.
- EXEC SQL INCLUDE SQLCA END-EXEC
- 01 file-status.
- 04 status-key-1 pic x.
- 04 status-key-2 pic x.
- 04 binary-status redefines status-key-2 pic 99 comp-x.
- 01 einde pic 9 value 0.
- LINKAGE SECTION.
- 01 abspad pic x(150).
- 01 returnmessage pic x(50).
- PROCEDURE DIVISION USING abspad RETURNING returnmessage.
- pgm.
- OPEN OUTPUT logfile errorlogfile
- OPEN INPUT inputfile
- IF (file-status IS NOT = "00")
- MOVE "Probleem met bestand" TO returnmessage elbericht
- PERFORM schrijfERRORLOG
- PERFORM ENDPROG
- END-IF
- PERFORM CONNECT
- IF (SQLSTATE IS NOT = "00000")
- MOVE "Database kan niet geopend worden"
- TO returnmessage elbericht
- PERFORM schrijfERRORLOG
- PERFORM ENDPROG
- END-IF
- READ inputfile
- AT END MOVE 1 TO einde
- PERFORM schrijfLOG
- END-READ
- PERFORM UNTIL einde = 1
- UNSTRING karstring DELIMITED BY ';' INTO studnr,
- studnrinit, fnaam, vnaam, email, klasgeheel, rest
- END-UNSTRING
- EXEC SQL
- INSERT INTO student (studentNr, naam, voornaam,
- emailadres, jaar, richting, klas, klasgroep)
- VALUES(:studnr, :fnaam, :vnaam, :mail, :studjaar,
- :dep, :studklas, :groep)
- END-EXEC
- IF (SQLSTATE IS = "23000")
- EXEC SQL
- UPDATE student
- SET naam = :fnaam, voornaam = :vnaam,
- emailadres = :mail, jaar = :studjaar,
- richting = :dep, klas = :studklas,
- klasgroep = :groep
- WHERE studentNr = :studnr
- END-EXEC
- END-IF
- PERFORM schrijfLOG
- READ inputfile
- AT END MOVE 1 TO einde
- PERFORM schrijfLOG
- END-READ
- END-PERFORM
- EXEC SQL COMMIT END-EXEC
- PERFORM DISCONNECT
- MOVE "eindebestand" TO returnmessage
- PERFORM ENDPROG.
- CONNECT.
- EXEC SQL
- CONNECT
- TO "jdbc:mysql://localhost:3306/test"
- USER "root"
- PASSWORD "groep38"
- DRIVER "com.mysql.jdbc.Driver"
- END-EXEC.
- DISCONNECT.
- EXEC SQL
- DISCONNECT ALL
- END-EXEC.
- schrijfLOG.
- IF (einde is = 1)
- MOVE "einde bestand bereikt" to lbericht
- MOVE SPACES to lstudentnr
- ELSE
- MOVE "student weggeschreven" TO lbericht
- MOVE studnrinit to lstudentnr
- END-IF
- MOVE FUNCTION CURRENT-DATE(1:16)TO logdatum
- WRITE logrecord
- END-WRITE
- schrijfERRORLOG.
- MOVE studnrinit TO elstudentnr
- MOVE FUNCTION CURRENT-DATE(1:16)TO elogdatum
- WRITE elogrecord
- END-WRITE
- ENDPROG.
- END PROGRAM.
- * check-status.
- * evaluate status-key-1
- * when "0" perform schrijfLOG
- * when "1" display "einde bestand"
- * perform check-eof-status
- * when "2" display "ongeldige sleutel"
- * perform check-inv-key-status
- * when "3" display "permanente fout"
- * perform check-perm-err-status
- * when "4" display "logische fout"
- * when "9" display "run-time systeemfout"
- * perform check-mf-error-message
- * end-evaluate.
- * check-eof-status.
- * if status-key-2 = "0" display "geen records meer"
- * move "geen records meer" to elbericht
- * end-if.
- * perform schrijfERRORLOG
- * check-inv-key-status.
- * evaluate status-key-2
- * when "2"
- * display "record met eenzelfde sleutel bestaat al"
- * move "record met eenzelfde sleutel bestaat al"
- * to elbericht
- * when "3" display "geen record gevonden met sleutel"
- * move "geen record gevonden met sleutel"
- * to elbericht
- * end-evaluate.
- * perform schrijfERRORLOG
- * check-perm-err-status.
- * if status-key-2 = "5" display "bestand niet gevonden"
- * move "bestand niet gevonden" to elbericht
- * end-if.
- * perform schrijfERRORLOG
- * check-mf-error-message.
- * evaluate binary-status
- * when 002 display "bestand is niet geopend"
- * move "bestand is niet geopend" to elbericht
- * when 007 display "schrijfruimte vol"
- * move "schrijfruimte vol" to elbericht
- * when 013 display "bestand niet gevonden"
- * move "bestand niet gevonden" to elbericht
- * when 024 display "fout op schijf"
- * move "fout op schijf" to elbericht
- * when 065 display "bestand is beveiligd"
- * move "bestand is beveiligd" to elbericht
- * when 068 display "record is beveiligd"
- * move "record is beveiligd" to elbericht
- * when 039 display "record is niet geheel"
- * move "record is niet geheel" to elbericht
- * when 146 display "geen huidig record beschikbaar"
- * move "geen huidig record beschikbaar"
- * to elbericht
- * when 180 display "bestand is niet goed samengesteld"
- * move "bestand is niet goed samengesteld"
- * to elbericht
- * when 208 display "netwerkfout"
- * move "netwerkfout" to elbericht
- * when 213 display "te gesloten bestand"
- * move "te gesloten bestand" to elbericht
- * when other display "geen error status"
- * move "geen error status" to elbericht
- * end-evaluate.
- * perform schrijfERRORLOG
- *
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement