Advertisement
Guest User

Untitled

a guest
Aug 16th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.90 KB | None | 0 0
  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. UC2.
  3.  
  4. ENVIRONMENT DIVISION.
  5. input-output section.
  6. file-control.
  7. select logboekF assign to "logboekF2txt"
  8. organization is line sequential.
  9. select logboekG assign to "logboekG2txt"
  10. organization
  11. EXEC SQL
  12. DECLARE crs CURSOR FOR
  13. SELECT studnr, naam, voornaam FROM student
  14. END-EXEC.
  15. EXEC SQL
  16. DECLARE crsafw CURSOR FOR
  17. SELECT * FROM afwezigheid WHERE studentenNr = studnr
  18. END-EXEC.
  19. 01 afwezigheid.
  20. 02 afwid pic 9(10).
  21. 02 datumVan.
  22. 05 D-JAAR PIC XXXX.
  23. 05 D-Mo PIC XX.
  24. 05 D-DD PIC XX.
  25. 05 D-HH PIC XX.
  26. 05 D-MM PIC XX.
  27. 05 D-SS PIC XX.
  28. 05 D-OVER PIC X(12).
  29. 02 datumTot pic x(26).
  30. 02 afwstatus pic 9.
  31. 02 afwstudnr pic x(9).
  32. 02 reden pic x(100).
  33. 01 student.
  34. 02 studnr pic x(9).
  35. 02 achternaam pic x(10).
  36. 02 naam pic x(10).
  37. 88 eindeStudenten value low-values.
  38. 88 eindeafw value low-values.
  39. 01 tellers.
  40. 02 aantal pic 99.
  41. 02 gewettigd pic 99.
  42. 02 ongewettigd pic 99.
  43. 02 wachtend pic 99.
  44. 02 datumTeller pic 9.
  45. 88 opTijd value low-values.
  46. 01 SYSTEM-DATE.
  47. 02 SYSTEM-YEAR PIC 99.
  48. 02 SYSTEM-MONTH PIC 99.
  49. 02 SYSTEM-DAY PIC 99.
  50.  
  51. PROCEDURE DIVISION.
  52. main.
  53. ACCEPT SYSTEM-DATE FROM DATE
  54. perform do-connect
  55. perform lees-student
  56. if(eindeStudenten) then move "geen studenten in db" to logrekordF
  57. perform write-fout
  58. end-if
  59. perform until eindeStudenten
  60. perform lees-afwezigheid
  61. if(eindeafw) then
  62. move "geen afwezigheden" to logrekordG
  63. end-if
  64. perform write-goed
  65. perform until eindeafw
  66. evaluate afwstatus
  67. when 1
  68. add 1 to gewettigd
  69. when 2
  70. add 1 to ongewettigd
  71. when 3
  72. add 1 to wachtend
  73. perform datum-controle
  74. end-evaluate
  75. perform lees-afwezigheid
  76. if(wachtend = 0) then
  77. move "Geen openstaande afwezigheden" to logrekordG
  78. perform write-goed
  79. end-if
  80. end-perform
  81. perform lees-student
  82. end-perform
  83. perform do-work
  84. perform do-disconnect.
  85.  
  86. lees-student.
  87. EXEC SQL
  88. OPEN crs
  89. FETCH crs INTO student
  90. END-EXEC
  91. evaluate SQLCODE
  92. when 0
  93. move "nieuwe student geselecteerd met studnr" to logrekordG
  94. perform write-goed
  95. perform tel-aantal-afwezigheden
  96. string "aantal ongewettigde afwezigheden: " aantal delimited
  97. by size into logrekordG
  98. perform write-goed
  99. when +100
  100. set eindeStudenten to true
  101. move "einde van studenten" to logrekordG
  102. perform write-goed
  103. when other
  104. string "Fout in de student cursor" SQLCODE delimited
  105. by size into logrekordF
  106. perform write-fout
  107. end-evaluate.
  108.  
  109. lees-afwezigheid.
  110. EXEC SQL
  111. OPEN crsafw
  112. FETCH crsafw INTO afwezigheid
  113. END-EXEC
  114. evaluate SQLCODE
  115. when +100
  116. set eindeAfw to true
  117. when other
  118. string "Fout in de eindeafw cursor" SQLCODE delimited
  119. by size into logrekordF
  120. perform write-fout
  121. end-evaluate.
  122.  
  123. datum-controle.
  124. perform until datumTeller > 6 and opTijd
  125.  
  126.  
  127. add 1 to datumTeller
  128. end-perform
  129. stop run.
  130.  
  131.  
  132. do-connect.
  133. EXEC SQL
  134. CONNECT
  135. TO "jdbc:mysql://localhost/project"
  136. USER "root"
  137. PASSWORD "test"
  138. DRIVER "com.mysql.jdbc.Driver"
  139. END-EXEC
  140. if(SQLSTATE not = "00000") then
  141. string "Kan niet connecteren met database" delimited
  142. by size into logrekordF
  143. perform write-fout.
  144. stop run.
  145.  
  146. do-work.
  147. EXEC SQL
  148. commit work
  149. END-EXEC.
  150.  
  151. do-disconnect.
  152. EXEC SQL
  153. DISCONNECT ALL
  154. END-EXEC
  155. stop run.
  156.  
  157. write-fout.
  158. open output logboekF
  159. write logrekordF.
  160. move spaces to logrekordF
  161. close logboekF.
  162.  
  163. write-goed.
  164. open output logboekG
  165. write logrekordG
  166. move spaces to logrekordG
  167. close logboekG.
  168.  
  169. tel-aantal-afwezigheden.
  170. EXEC SQL
  171. SELECT count(afwezigheidsId) INTO :aantal
  172. FROM afwezigheid
  173. WHERE studentenNr = :studnr and status = '2'
  174. END-EXEC.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement