Advertisement
Guest User

Untitled

a guest
Aug 7th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.72 KB | None | 0 0
  1. 000100 IDENTIFICATION DIVISION.
  2. 000200 PROGRAM-ID. DBCommunication.
  3. ENVIRONMENT DIVISION.
  4. INPUT-OUTPUT SECTION.
  5. FILE-CONTROL.
  6.  
  7. SELECT inputfile ASSIGN USING abspad
  8. ORGANIZATION IS LINE SEQUENTIAL
  9. FILE STATUS IS file-status.
  10.  
  11. SELECT logfile ASSIGN TO "logfile"
  12. ORGANIZATION IS LINE SEQUENTIAL.
  13.  
  14. SELECT errorlogfile ASSIGN TO "errorlogfile"
  15. ORGANIZATION IS LINE SEQUENTIAL.
  16.  
  17. DATA DIVISION.
  18. FILE SECTION.
  19. FD inputfile.
  20. 01 inputrecord.
  21. 02 karstring pic x(150).
  22.  
  23.  
  24. FD logfile.
  25. 01 logrecord.
  26. 02 logdatum.
  27. * 02 lWS-DATE-WORK-AREA pic x(16) value "CCYYMMDDhhmmssms".
  28. 04 lCC pic xx.
  29. 04 lYY pic xx.
  30. 04 filler value "-".
  31. 04 lMM pic xx.
  32. 04 filler value "-".
  33. 04 lDD pic xx.
  34. 04 filler value " ".
  35. 04 lhh pic xx.
  36. 04 filler value ":".
  37. 04 lminutes pic xx.
  38. 04 filler value ":".
  39. 04 lss pic xx.
  40. 04 filler pic x value ":".
  41. 04 lms pic xx.
  42.  
  43. 02 lstudentnr pic x(8).
  44. 02 lbericht pic x(40).
  45.  
  46.  
  47. FD errorlogfile.
  48. 01 elogrecord.
  49. 02 elogdatum.
  50. * 02 lWS-DATE-WORK-AREA pic x(16) value "CCYYMMDDhhmmssms".
  51. 04 elCC pic xx.
  52. 04 elYY pic xx.
  53. 04 filler value "-".
  54. 04 elMM pic xx.
  55. 04 filler value "-".
  56. 04 elDD pic xx.
  57. 04 filler value " ".
  58. 04 elhh pic xx.
  59. 04 filler value ":".
  60. 04 elminutes pic xx.
  61. 04 filler value ":".
  62. 04 elss pic xx.
  63. 04 filler pic x value ":".
  64. 04 elms pic xx.
  65. 02 elbericht pic x(40).
  66. 02 elstudentnr pic x(8).
  67.  
  68. WORKING-STORAGE SECTION.
  69. COPY DBUitvoer.
  70.  
  71. EXEC SQL INCLUDE SQLCA END-EXEC
  72.  
  73. 01 file-status.
  74. 04 status-key-1 pic x.
  75. 04 status-key-2 pic x.
  76. 04 binary-status redefines status-key-2 pic 99 comp-x.
  77.  
  78. 01 einde pic 9 value 0.
  79.  
  80. LINKAGE SECTION.
  81.  
  82. 01 abspad pic x(150).
  83. 01 returnmessage pic x(50).
  84.  
  85. PROCEDURE DIVISION USING abspad RETURNING returnmessage.
  86. pgm.
  87. OPEN OUTPUT logfile errorlogfile
  88. OPEN INPUT inputfile
  89. IF (file-status IS NOT = "00")
  90. MOVE "Probleem met bestand" TO returnmessage elbericht
  91. PERFORM schrijfERRORLOG
  92. PERFORM ENDPROG
  93. END-IF
  94. PERFORM CONNECT
  95. IF (SQLSTATE IS NOT = "00000")
  96. MOVE "Database kan niet geopend worden"
  97. TO returnmessage elbericht
  98. PERFORM schrijfERRORLOG
  99. PERFORM ENDPROG
  100. END-IF
  101. READ inputfile
  102. AT END MOVE 1 TO einde
  103. PERFORM schrijfLOG
  104. END-READ
  105. PERFORM UNTIL einde = 1
  106.  
  107. UNSTRING karstring DELIMITED BY ';' INTO studnr,
  108. studnrinit, fnaam, vnaam, email, klasgeheel, rest
  109. END-UNSTRING
  110.  
  111. EXEC SQL
  112. INSERT INTO student (studentNr, naam, voornaam,
  113. emailadres, jaar, richting, klas, klasgroep)
  114. VALUES(:studnr, :fnaam, :vnaam, :mail, :studjaar,
  115. :dep, :studklas, :groep)
  116. END-EXEC
  117. IF (SQLSTATE IS = "23000")
  118. EXEC SQL
  119. UPDATE student
  120. SET naam = :fnaam, voornaam = :vnaam,
  121. emailadres = :mail, jaar = :studjaar,
  122. richting = :dep, klas = :studklas,
  123. klasgroep = :groep
  124. WHERE studentNr = :studnr
  125. END-EXEC
  126. END-IF
  127. PERFORM schrijfLOG
  128. READ inputfile
  129. AT END MOVE 1 TO einde
  130. PERFORM schrijfLOG
  131. END-READ
  132. END-PERFORM
  133. EXEC SQL COMMIT END-EXEC
  134. PERFORM DISCONNECT
  135. MOVE "eindebestand" TO returnmessage
  136. PERFORM ENDPROG.
  137.  
  138. CONNECT.
  139. EXEC SQL
  140. CONNECT
  141. TO "jdbc:mysql://localhost:3306/test"
  142. USER "root"
  143. PASSWORD "groep38"
  144. DRIVER "com.mysql.jdbc.Driver"
  145. END-EXEC.
  146.  
  147. DISCONNECT.
  148. EXEC SQL
  149. DISCONNECT ALL
  150. END-EXEC.
  151.  
  152. schrijfLOG.
  153. IF (einde is = 1)
  154. MOVE "einde bestand bereikt" to lbericht
  155. MOVE SPACES to lstudentnr
  156. ELSE
  157. MOVE "student weggeschreven" TO lbericht
  158. MOVE studnrinit to lstudentnr
  159. END-IF
  160. MOVE FUNCTION CURRENT-DATE(1:16)TO logdatum
  161. WRITE logrecord
  162. END-WRITE
  163.  
  164. schrijfERRORLOG.
  165. MOVE studnrinit TO elstudentnr
  166. MOVE FUNCTION CURRENT-DATE(1:16)TO elogdatum
  167. WRITE elogrecord
  168. END-WRITE
  169.  
  170. ENDPROG.
  171. END PROGRAM.
  172.  
  173.  
  174. * check-status.
  175. * evaluate status-key-1
  176. * when "0" perform schrijfLOG
  177. * when "1" display "einde bestand"
  178. * perform check-eof-status
  179. * when "2" display "ongeldige sleutel"
  180. * perform check-inv-key-status
  181. * when "3" display "permanente fout"
  182. * perform check-perm-err-status
  183. * when "4" display "logische fout"
  184. * when "9" display "run-time systeemfout"
  185. * perform check-mf-error-message
  186. * end-evaluate.
  187. * check-eof-status.
  188. * if status-key-2 = "0" display "geen records meer"
  189. * move "geen records meer" to elbericht
  190. * end-if.
  191. * perform schrijfERRORLOG
  192. * check-inv-key-status.
  193. * evaluate status-key-2
  194. * when "2"
  195. * display "record met eenzelfde sleutel bestaat al"
  196. * move "record met eenzelfde sleutel bestaat al"
  197. * to elbericht
  198. * when "3" display "geen record gevonden met sleutel"
  199. * move "geen record gevonden met sleutel"
  200. * to elbericht
  201. * end-evaluate.
  202. * perform schrijfERRORLOG
  203. * check-perm-err-status.
  204. * if status-key-2 = "5" display "bestand niet gevonden"
  205. * move "bestand niet gevonden" to elbericht
  206. * end-if.
  207. * perform schrijfERRORLOG
  208. * check-mf-error-message.
  209. * evaluate binary-status
  210. * when 002 display "bestand is niet geopend"
  211. * move "bestand is niet geopend" to elbericht
  212. * when 007 display "schrijfruimte vol"
  213. * move "schrijfruimte vol" to elbericht
  214. * when 013 display "bestand niet gevonden"
  215. * move "bestand niet gevonden" to elbericht
  216. * when 024 display "fout op schijf"
  217. * move "fout op schijf" to elbericht
  218. * when 065 display "bestand is beveiligd"
  219. * move "bestand is beveiligd" to elbericht
  220. * when 068 display "record is beveiligd"
  221. * move "record is beveiligd" to elbericht
  222. * when 039 display "record is niet geheel"
  223. * move "record is niet geheel" to elbericht
  224. * when 146 display "geen huidig record beschikbaar"
  225. * move "geen huidig record beschikbaar"
  226. * to elbericht
  227. * when 180 display "bestand is niet goed samengesteld"
  228. * move "bestand is niet goed samengesteld"
  229. * to elbericht
  230. * when 208 display "netwerkfout"
  231. * move "netwerkfout" to elbericht
  232. * when 213 display "te gesloten bestand"
  233. * move "te gesloten bestand" to elbericht
  234. * when other display "geen error status"
  235. * move "geen error status" to elbericht
  236. * end-evaluate.
  237. * perform schrijfERRORLOG
  238. *
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement