Primes.out
This is the outpur of the primes.cbsql Cobol program compilation, which contains the processed high level SQL statements.
GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0001 LINE PG/LN A...B............................................................SEQUENCE 000001 identification division. 000002 program-id. primes. 000003 000004 environment division. 000005 configuration section. 000006 source-computer. linux-laptop. 000007 object-computer. linux-laptop. 000008 special-names. 000009 console is scherm. 000010 000011 data division. 000012 working-storage section. 000013 01 filler pic x(32) value "Start WS primes". 000014 01 DATASRC PIC X(64) value 000015 "pgsql://localhost:5432/primes&default_schema=primes". 000016 01 DBUSR PIC X(64) value "primes_user". 000017 01 DBPWD PIC X(64) value "pr1mes_user". 000018 01 CUR-STEP PIC X(16). 000019 01 primes-row. 000020 03 r-ident pic 9(9) comp-3. 000021 03 r-prime pic 9(9) comp-3. 000022 01 prime-count pic 9(9). 000023 01 prime_seq pic 9(9). 000024 01 divider pic 9(9). 000025 000026 01 primes. 000027 03 primes-result pic 9(2) value zero. 000028 88 init-primes-ok value 1. 000029 88 first-divider-ok value 2. 000030 88 next-divider-ok value 3. 000031 03 test-number pic 9(9). 000032 03 test-number-sqr pic 9(9)v9(9). 000033 03 test-divider pic 9(9). 000034 03 test-rest pic 9(9)v9(9). 000035 03 old-test-number pic 9(9). 000036 03 old-ident pic 9(9). 000037 03 new-ident pic 9(9). 000038 000039 GIXSQL*EXEC SQL 000040 GIXSQL* INCLUDE primes-table 000041 GIXSQL*END-EXEC. 000042 COPY primes-table. 000001C 01 primes-table. 000002C 03 ident pic s9(9). 000003C 03 prime pic s9(9). 000004C 000043 000044 GIXSQL*EXEC SQL 000045 GIXSQL* INCLUDE SQLCA 000046 GIXSQL*END-EXEC. 000047 COPY SQLCA. 000001C ****************************************************************** GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0002 LINE PG/LN A...B............................................................SEQUENCE 000002C * SQLCA: SQL Communications Area for GIXSQL * 000003C ****************************************************************** 000004C 01 SQLCA. 000005C 05 SQLCAID PIC X(8). 000006C 05 SQLCABC PIC S9(9) COMP-5. 000007C 05 SQLCODE PIC S9(9) COMP-5. 000008C 05 SQLERRM. 000009C 49 SQLERRML PIC S9(4) COMP-5. 000010C 49 SQLERRMC PIC X(70). 000011C 05 SQLERRP PIC X(8). *> not used 000012C 05 SQLERRD OCCURS 6 TIMES *> used only ERRD(3) 000013C PIC S9(9) COMP-5. 000014C 05 SQLWARN. *> not used 000015C 10 SQLWARN0 PIC X(1). 000016C 10 SQLWARN1 PIC X(1). 000017C 10 SQLWARN2 PIC X(1). 000018C 10 SQLWARN3 PIC X(1). 000019C 10 SQLWARN4 PIC X(1). 000020C 10 SQLWARN5 PIC X(1). 000021C 10 SQLWARN6 PIC X(1). 000022C 10 SQLWARN7 PIC X(1). 000023C 05 SQLSTATE PIC X(5). 000024C ****************************************************************** 000048 000049 GIXSQL*EXEC SQL AT primes 000050 GIXSQL* DECLARE primescursor CURSOR FOR 000051 GIXSQL* SELECT * FROM primes 000052 GIXSQL*END-EXEC. 000053 000054 copy primes-ui. 000001C * three-tier-operations methods 000002C * ui part, methods available to all objects 000003C 01 primes-ui. 000004C 03 ui-methods pic x(32). 000005C 88 write-ui value "write". 000006C 88 message-ui value "log-message". 000007C 88 start-ui value "start". 000008C 88 stop-ui value "stop". 000009C 03 process-message. 000010C 05 program-name pic x(20). 000011C 05 program-line. 000012C 07 program-paragraph pic x(20). 000013C 07 program-message pic x(92). 000014C 03 u-primes. 000015C 05 u-sequence pic 9(9). 000016C 05 u-number pic 9(9). 000017C 03 ui-method-result pic 9(2) value zero. 000018C 88 ui-method-ok value 0. 000019C 88 ui-method-nok value 1. 000055 000056 GIXSQL 01 SQ0001. 000057 GIXSQL 02 FILLER PIC X(0020) VALUE "SELECT * FROM primes". GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0003 LINE PG/LN A...B............................................................SEQUENCE 000058 GIXSQL 02 FILLER PIC X(1) VALUE X"00". 000059 GIXSQL 01 SQ0002. 000060 GIXSQL 02 FILLER PIC X(0041) VALUE "SELECT prime FROM primes WHER" 000061 GIXSQL & "E ident = $1". 000062 GIXSQL 02 FILLER PIC X(1) VALUE X"00". 000063 GIXSQL 01 SQ0003. 000064 GIXSQL 02 FILLER PIC X(0042) VALUE "INSERT INTO primes ( prime ) " 000065 GIXSQL & "VALUES ( $1 )". 000066 GIXSQL 02 FILLER PIC X(1) VALUE X"00". 000067 GIXSQL 01 SQ0004. 000068 GIXSQL 02 FILLER PIC X(0041) VALUE "insert into primes ( prime ) " 000069 GIXSQL & "values ( 2 )". 000070 GIXSQL 02 FILLER PIC X(1) VALUE X"00". 000071 GIXSQL 01 SQ0005. 000072 GIXSQL 02 FILLER PIC X(0017) VALUE "START TRANSACTION". 000073 GIXSQL 02 FILLER PIC X(1) VALUE X"00". 000074 GIXSQL* ESQL CURSOR INIT FLAGS (START) 000075 GIXSQL 01 GIXSQL-CI-F-primes-primescursor PIC X. 000076 GIXSQL* ESQL CURSOR INIT FLAGS (END) 000077 linkage section. 000078 000079 copy primes-dal. 000001C * three-tier-operations methods 000002C * business dal tier 000003C 01 primes-dal. 000004C 03 dal-methods pic x(32). 000005C 88 next-prime value "next-prime". 000006C 88 next-divider value "next-divider". 000007C 88 write-prime value "write". 000008C 88 db-cursor value "cursor". 000009C 88 db-connect value "connect". 000010C 88 db-disconnect value "disconnect". 000011C 88 invalid-method value "bad". 000012C 03 primes-data. 000013C 05 primes-sequence pic 9(9). 000014C 05 prime-number pic 9(9). 000015C 03 dal-result pic 9(2) value zero. 000016C 88 dal-method-ok value 0. 000017C 88 dal-method-nok value 1. 000018C 88 dal-method-eof value 99. 000019C * 03 primes-table. 000020C * 05 ident pic s9(9). 000021C * 05 prime pic s9(9). 000022C 000080 000081 procedure division using primes-dal. 000082 000083 evaluate true 000084 when next-prime 000085 perform r80-get-next-prime 000086 when next-divider 000087 perform r81-get-next-divider GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0004 LINE PG/LN A...B............................................................SEQUENCE 000088 when write-prime 000089 perform r83-write-prime 000090 when db-connect 000091 perform s00-connect 000092 when db-cursor 000093 perform s01-cursor 000094 when db-disconnect 000095 perform s99-disconnect 000096 when other 000097 move 1 to dal-result 000098 end-evaluate. 000099 000100 exit program. 000101 000102 r80-get-next-prime. 000103 000104 perform s02-fetch. 000105 000106 r81-get-next-divider. 000107 000108 add 1 to old-ident giving new-ident. 000109 * display "gen-methods: " gen-methods. 000110 * display "primes.cbl ident: " old-ident " " new-ident. 000111 000112 GIXSQL* EXEC SQL at primes 000113 GIXSQL* SELECT prime INTO :test-divider FROM primes 000114 GIXSQL* WHERE ident = :new-ident 000115 GIXSQL* END-EXEC. 000116 GIXSQL CALL STATIC "GIXSQLStartSQL" 000117 GIXSQL END-CALL 000118 GIXSQL CALL STATIC "GIXSQLSetResultParams" USING 000119 GIXSQL BY VALUE 1 000120 GIXSQL BY VALUE 9 000121 GIXSQL BY VALUE 0 000122 GIXSQL BY VALUE 0 000123 GIXSQL BY REFERENCE test-divider 000124 GIXSQL BY REFERENCE 0 000125 GIXSQL END-CALL 000126 GIXSQL CALL STATIC "GIXSQLSetSQLParams" USING 000127 GIXSQL BY VALUE 1 000128 GIXSQL BY VALUE 9 000129 GIXSQL BY VALUE 0 000130 GIXSQL BY VALUE 0 000131 GIXSQL BY REFERENCE new-ident 000132 GIXSQL BY REFERENCE 0 000133 GIXSQL END-CALL 000134 GIXSQL CALL STATIC "GIXSQLExecSelectIntoOne" USING 000135 GIXSQL BY REFERENCE SQLCA 000136 GIXSQL BY REFERENCE "primes" & x"00" 000137 GIXSQL BY VALUE 0 000138 GIXSQL BY REFERENCE SQ0002 000139 GIXSQL BY VALUE 1 GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0005 LINE PG/LN A...B............................................................SEQUENCE 000140 GIXSQL BY VALUE 1 000141 GIXSQL END-CALL 000142 GIXSQL CALL STATIC "GIXSQLEndSQL" 000143 GIXSQL END-CALL. 000144 000145 if SQLCODE = 0 then 000146 next sentence 000147 * display "select new-divider ok: " test-divider upon scherm 000148 else 000149 display SQLCODE upon scherm 000150 display "select new-divider nok" upon scherm. 000151 000152 * display "primes.cbl test-divider: " test-divider. 000153 000154 move new-ident to old-ident. 000155 000156 r83-write-prime. 000157 000158 GIXSQL* EXEC SQL at primes 000159 GIXSQL* INSERT INTO primes ( prime ) VALUES ( :prime ) 000160 GIXSQL* END-EXEC. 000161 GIXSQL CALL STATIC "GIXSQLStartSQL" 000162 GIXSQL END-CALL 000163 GIXSQL CALL STATIC "GIXSQLSetSQLParams" USING 000164 GIXSQL BY VALUE 1 000165 GIXSQL BY VALUE 9 000166 GIXSQL BY VALUE 0 000167 GIXSQL BY VALUE 0 000168 GIXSQL BY REFERENCE prime 000169 GIXSQL BY REFERENCE 0 000170 GIXSQL END-CALL 000171 GIXSQL CALL STATIC "GIXSQLExecParams" USING 000172 GIXSQL BY REFERENCE SQLCA 000173 GIXSQL BY REFERENCE "primes" & x"00" 000174 GIXSQL BY VALUE 0 000175 GIXSQL BY REFERENCE SQ0003 000176 GIXSQL BY VALUE 1 000177 GIXSQL END-CALL 000178 GIXSQL CALL STATIC "GIXSQLEndSQL" 000179 GIXSQL END-CALL. 000180 000181 if SQLCODE = 0 then 000182 next sentence 000183 * display SQLCODE upon scherm 000184 * display "primes.cbl insert next prime and new-ident ok: " 000185 * prime-number upon scherm 000186 else 000187 display SQLCODE upon scherm 000188 display "primes.cbl insert next prime nok: " 000189 prime-number upon scherm. 000190 000191 GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0006 LINE PG/LN A...B............................................................SEQUENCE 000192 * EXEC SQL at primes 000193 * COMMIT 000194 * END-EXEC. 000195 000196 if SQLCODE = 0 then 000197 next sentence 000198 * display SQLCODE upon scherm 000199 * display "commit ok: " upon scherm 000200 else 000201 display SQLCODE upon scherm 000202 display "commit nok: " upon scherm. 000203 000204 r90-generate-primes. 000205 000206 perform s00-connect. 000207 000208 if dal-method-ok then 000209 000210 move 'log-message' to process-message 000211 000212 GIXSQL* EXEC SQL at primes 000213 GIXSQL* insert into primes ( prime ) values ( 2 ) 000214 GIXSQL* END-EXEC. 000215 GIXSQL CALL STATIC "GIXSQLExec" USING 000216 GIXSQL BY REFERENCE SQLCA 000217 GIXSQL BY REFERENCE "primes" & x"00" 000218 GIXSQL BY VALUE 0 000219 GIXSQL BY REFERENCE SQ0004 000220 GIXSQL END-CALL. 000221 000222 if SQLCODE = 0 then 000223 move 0 to dal-result 000224 move 1 to primes-sequence 000225 move 2 to prime-number 000226 move 'Initial insert ok.' 000227 to process-message 000228 else 000229 move 000230 'Initial insert failed, terminating program.' 000231 to process-message 000232 move 1 to dal-result. 000233 000234 move 'log-message' to program-message. 000235 call "primesui" using primes-ui. 000236 000237 000238 000239 r99-stop-primes. 000240 000241 perform s99-disconnect. 000242 000243 s00-connect. GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0007 LINE PG/LN A...B............................................................SEQUENCE 000244 MOVE 'CONNECT' TO CUR-STEP. 000245 GIXSQL* EXEC SQL 000246 GIXSQL* connect TO :DATASRC AS primes USER :DBUSR USING :DBPWD 000247 GIXSQL* END-EXEC. 000248 GIXSQL CALL STATIC "GIXSQLConnect" USING 000249 GIXSQL BY REFERENCE SQLCA 000250 GIXSQL BY REFERENCE DATASRC 000251 GIXSQL BY VALUE 64 000252 GIXSQL BY REFERENCE "primes" & x"00" 000253 GIXSQL BY VALUE 0 000254 GIXSQL BY REFERENCE x"00" 000255 GIXSQL BY VALUE 0 000256 GIXSQL BY REFERENCE DBUSR 000257 GIXSQL BY VALUE 64 000258 GIXSQL BY REFERENCE DBPWD 000259 GIXSQL BY VALUE 64 000260 GIXSQL END-CALL. 000261 move 'log-message' to process-message. 000262 if SQLCODE = 0 then 000263 move 0 to dal-result 000264 move 'Database initialisation ok.' 000265 to program-message 000266 call "primesui" using primes-ui 000267 else 000268 move 000269 'Database initialisation failed, terminating program.' 000270 to program-message 000271 call "primesui" using primes-ui 000272 move 1 to dal-result. 000273 000274 s01-cursor. 000275 000276 move 'primes' to program-name. 000277 000278 GIXSQL* EXEC SQL at primes START TRANSACTION END-EXEC. 000279 GIXSQL CALL STATIC "GIXSQLStartSQL" 000280 GIXSQL END-CALL 000281 GIXSQL CALL STATIC "GIXSQLExec" USING 000282 GIXSQL BY REFERENCE SQLCA 000283 GIXSQL BY REFERENCE "primes" & x"00" 000284 GIXSQL BY VALUE 0 000285 GIXSQL BY REFERENCE SQ0005 000286 GIXSQL END-CALL 000287 GIXSQL CALL STATIC "GIXSQLEndSQL" 000288 GIXSQL END-CALL. 000289 000290 if SQLCODE = 0 then 000291 move 'Start transaction ok.' 000292 to program-message 000293 else 000294 move 'Start transaction nok.' 000295 to program-message GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0008 LINE PG/LN A...B............................................................SEQUENCE 000296 move 1 to dal-result. 000297 000298 move 'log-message' to program-message. 000299 call "primesui" using primes-ui. 000300 000301 * display "start transaction nok" upon scherm. 000302 000303 if dal-method-ok then 000304 000305 GIXSQL* EXEC SQL OPEN primescursor END-EXEC. 000306 GIXSQL IF GIXSQL-CI-F-primes-primescursor = ' ' THEN 000307 GIXSQL PERFORM GIXSQL-CI-P-primes-primescursor 000308 GIXSQL IF SQLCODE = 0 000309 GIXSQL MOVE 'X' TO GIXSQL-CI-F-primes-primescursor 000310 GIXSQL END-IF 000311 GIXSQL END-IF 000312 GIXSQL IF GIXSQL-CI-F-primes-primescursor = 'X' THEN 000313 GIXSQL CALL STATIC "GIXSQLCursorOpen" USING 000314 GIXSQL BY REFERENCE SQLCA 000315 GIXSQL BY REFERENCE "primes_primescursor" & x"00" 000316 GIXSQL END-CALL 000317 GIXSQL END-IF. 000318 000319 if SQLCODE = 0 then 000320 move 'Start primescursur ok.' 000321 to program-message 000322 else 000323 move 'Start primescursor nok.' 000324 to program-message 000325 move 1 to dal-result. 000326 000327 000328 move 'primes' to program-name. 000329 move 'log-message' to program-message. 000330 call "primesui" using primes-ui. 000331 000332 * if dal-method-ok then 000333 * perform s02-fetch. 000334 000335 * if SQLCODE = 0 then 000336 * move 'Fetch first row ok.' to program-message 000337 * move 0 to dal-result 000338 * move r-ident to primes-sequence 000339 * move r-prime to prime-number 000340 * else 000341 * move 'Fetch first row nok.' to program-message 000342 * move 1 to dal-result. 000343 000344 * move 'primes' to program-name. 000345 * move 'log-message' to program-message. 000346 * call "primesui" using primes-ui. 000347 GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0009 LINE PG/LN A...B............................................................SEQUENCE 000348 s02-fetch. 000349 000350 GIXSQL* EXEC SQL FETCH primescursor INTO :primes-row END-EXEC. 000351 GIXSQL CALL STATIC "GIXSQLStartSQL" 000352 GIXSQL END-CALL 000353 GIXSQL CALL STATIC "GIXSQLSetResultParams" USING 000354 GIXSQL BY VALUE 8 000355 GIXSQL BY VALUE 9 000356 GIXSQL BY VALUE 0 000357 GIXSQL BY VALUE 0 000358 GIXSQL BY REFERENCE r-ident 000359 GIXSQL BY REFERENCE 0 000360 GIXSQL END-CALL 000361 GIXSQL CALL STATIC "GIXSQLSetResultParams" USING 000362 GIXSQL BY VALUE 8 000363 GIXSQL BY VALUE 9 000364 GIXSQL BY VALUE 0 000365 GIXSQL BY VALUE 0 000366 GIXSQL BY REFERENCE r-prime 000367 GIXSQL BY REFERENCE 0 000368 GIXSQL END-CALL 000369 GIXSQL CALL STATIC "GIXSQLCursorFetchOne" USING 000370 GIXSQL BY REFERENCE SQLCA 000371 GIXSQL BY REFERENCE "primes_primescursor" & x"00" 000372 GIXSQL END-CALL 000373 GIXSQL CALL STATIC "GIXSQLEndSQL" 000374 GIXSQL END-CALL. 000375 000376 if SQLCODE = 0 then 000377 move r-ident to primes-sequence 000378 move r-prime to prime-number 000379 move 0 to dal-result 000380 else 000381 move 'Fetch row nok.' to program-message 000382 move 1 to dal-result 000383 move 'primes' to program-name 000384 move 's02-fetch' to program-paragraph 000385 move 'log-message' to ui-methods 000386 call "primesui" using primes-ui. 000387 000388 s99-disconnect. 000389 000390 MOVE 'DISCONNECT' TO CUR-STEP. 000391 GIXSQL* EXEC SQL connect RESET primes END-EXEC. 000392 GIXSQL CALL STATIC "GIXSQLConnectReset" USING 000393 GIXSQL BY REFERENCE SQLCA 000394 GIXSQL BY REFERENCE "primes" & x"00" 000395 GIXSQL BY VALUE 0 000396 GIXSQL END-CALL. 000397 000398 move 'log-message' to process-message. 000399 GnuCOBOL 4.0-early-dev. primes.cbsql Fri Dec 5 14:24:02 2025 Page 0010 LINE PG/LN A...B............................................................SEQUENCE 000400 if SQLCODE = 0 then 000401 move 0 to dal-result 000402 move 'Close database ok.' 000403 to process-message 000404 call "primesui" using primes-ui 000405 else 000406 move 'Database initialisation failed, ending program.' 000407 to process-message 000408 call "primesui" using primes-ui 000409 move 1 to dal-result. 000410 display "s99 disconnect from database" upon scherm. 000411 display SQLCODE upon scherm. 000412 GIXSQL* 000413 GIXSQL* ESQL CURSOR DECLARATIONS (START) 000414 GIXSQL GO TO GIX-SKIP-CRSR-INIT. 000415 GIXSQL GIXSQL-CI-P-primes-primescursor. 000416 GIXSQL CALL STATIC "GIXSQLCursorDeclare" USING 000417 GIXSQL BY REFERENCE SQLCA 000418 GIXSQL BY REFERENCE "primes" & x"00" 000419 GIXSQL BY VALUE 0 000420 GIXSQL BY REFERENCE "primes_primescursor" & x"00" 000421 GIXSQL BY VALUE 0 000422 GIXSQL BY REFERENCE SQ0001 000423 GIXSQL BY VALUE 0 000424 GIXSQL END-CALL. 000425 GIXSQL GIX-SKIP-CRSR-INIT. 000426 GIXSQL* 000427 GIXSQL* ESQL CURSOR DECLARATIONS (END) 0 warnings in compilation group 0 errors in compilation group
Terug naar: primes