Pgcobol.cbsql

From PostgreSQL_wiki
Jump to: navigation, search

GixSQL precompilation

The gixsql precompiler precesses the raw cobol file containing the high level SQL statements and translates them into cobol calls.

       IDENTIFICATION DIVISION.

       PROGRAM-ID. pgcobol.


       ENVIRONMENT DIVISION.

       CONFIGURATION SECTION.
       source-computer. Linux-laptop.
       object-computer. Linux-laptop.
       special-names.
           console is scherm.

       SOURCE-COMPUTER. IBM-AT.
       OBJECT-COMPUTER. IBM-AT.

       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
         select fprinter assign to "pgcobol.prt";
         ORGANIZATION LINE SEQUENTIAL.
       DATA DIVISION.

       FILE SECTION.
       FD fprinter.
       01 file-buffer PIC X(242).
       WORKING-STORAGE SECTION.

      *   copy 'SQLCA.cpy'.
      *   copy 'EMPREC.cpy'.

       01 DATASRC PIC X(64) value
          "pgsql://localhost:5432/cobol_gixsql".
       01 DBUSR     PIC X(64)  value "gix_user".
       01 DBPWD     PIC X(64)  value "gix_user".

       01 CUR-STEP    PIC X(16).
       01 empcount    PIC 9(5).
       01 employee-record.
           03 r-ENO PIC S9(4) COMP.
           03 r-LNAME PIC X(10).
           03 r-FNAME PIC X(10).
           03 r-STREET PIC X(20).
           03 r-CITY PIC X(15).
           03 r-ST PIC XX.
           03 r-ZIP PIC X(5).
           03 r-DEPT PIC X(4).
      *    03 a-PAYRATE PIC S9(13)V99 COMP-3 VALUE 0.
           03 r-PAYRATE PIC S9(13)V99 COMP-3 VALUE 0.
           03 r-COM PIC S9V99 COMP-3.
           03 r-MISCDATA PIC X(132).
           03 r-DNUM1 PIC S99V99 COMP-3.
           03 r-DNUM2 PIC S99V99 COMP-3.
           03 r-DNUM3 PIC S99V99 COMP-3.

       01 employee-row.
           03 p-ENO PIC z(3)9.
           03 filler pic x value space.
           03 p-LNAME PIC X(10).
           03 filler pic x value space.
           03 p-FNAME PIC X(10).
           03 filler pic x value space.
           03 p-STREET PIC X(20).
           03 filler pic x value space.
           03 p-CITY PIC X(15).
           03 filler pic x value space.
           03 p-ST PIC XX.
           03 filler pic x value space.
           03 p-ZIP PIC X(5).
           03 filler pic x value space.
           03 p-DEPT PIC X(4).
           03 filler pic x value space.
           03 p-PAYRATE PIC z(12)9.99.
           03 filler pic x value space.
           03 p-COM PIC 9v99.
           03 filler pic x value space.
           03 p-DNUM1 PIC z9.99.
           03 filler pic x value space.
           03 p-DNUM2 PIC z9.99.
           03 filler pic x value space.
           03 p-DNUM3 PIC z9.99.
           03 filler pic x value space.
           03 p-miscdata-text pic X(128).

       01 employee-header.
           03 h-ENO pic x(5) value 'Eno'.
           03 h-LNAME PIC X(11) value 'Lname'.
           03 h-FNAME PIC X(11) value 'Fname'.
           03 h-STREET PIC X(21) value space.
           03 h-CITY PIC X(16) value 'City'.
           03 h-ST PIC X(3) value 'ST'.
           03 h-ZIP PIC X(6) value 'zip'.
           03 h-DEPT PIC X(5) value 'Dept'.
           03 h-PAYRATE PIC x(17) value 'Payrate'.
           03 h-COM PIC x(4) value 'Com'.
           03 h-DNUM1 PIC x(6) value 'Dnum1'.
           03 h-DNUM2 PIC x(6) value 'Dnum1'.
           03 h-DNUM3 PIC x(6) value 'Dnum1'.
           03 h-miscdata-text pic X(128) value 'Misc data'.

       01 employee-page.
           03 filler pic x(118) value 'Employee overview'.
           03 filler pic x(10) value 'page'.
           03 f-page-number PIC z(3)9.

      *01 MISCDATA PIC X(132).

       01 miscdata-group.
           49 miscdata-len pic 9(8) comp-5.
           49 miscdata-text pic X(128).

       01 IDX              PIC 9(2).
       01 print-buffer     PIC X(242).
       01 line-number      PIC 99 value 99.
       01 page-number      PIC 9999 value zero.

       01 TMPNUM          PIC 9(4).

GIXSQL*EXEC SQL
GIXSQL*    INCLUDE employee-table
GIXSQL*END-EXEC.
           COPY employee-table.

GIXSQL*EXEC SQL
GIXSQL*    INCLUDE SQLCA
GIXSQL*END-EXEC.
           COPY SQLCA.

GIXSQL*EXEC SQL AT cobol_sql
GIXSQL*    DECLARE employeecursor CURSOR FOR
GIXSQL*      SELECT * FROM emptable
GIXSQL*END-EXEC.

GIXSQL 01  SQ0001.
GIXSQL     02  FILLER PIC X(0022) VALUE "SELECT * FROM emptable".
GIXSQL     02  FILLER PIC X(1) VALUE X"00".
GIXSQL 01  SQ0002.
GIXSQL     02  FILLER PIC X(0031) VALUE "SELECT COUNT( * ) FROM emptab"
GIXSQL  &  "le".
GIXSQL     02  FILLER PIC X(1) VALUE X"00".
GIXSQL 01  SQ0003.
GIXSQL     02  FILLER PIC X(0017) VALUE "START TRANSACTION".
GIXSQL     02  FILLER PIC X(1) VALUE X"00".
GIXSQL*   ESQL CURSOR INIT FLAGS (START)
GIXSQL 01  GIXSQL-CI-F-pgcobol-employeecursor PIC X.
GIXSQL*   ESQL CURSOR INIT FLAGS (END)
       PROCEDURE DIVISION.

       r00-main.

           perform r90-init.
           perform r80-verwerk.
           perform r99-exit.

       r80-verwerk.

GIXSQL*    EXEC SQL AT cobol_sql
GIXSQL*        SELECT COUNT(*) INTO :empcount FROM emptable
GIXSQL*    END-EXEC.
GIXSQL     CALL STATIC "GIXSQLStartSQL"
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 1
GIXSQL         BY VALUE 5
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE empcount
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLExecSelectIntoOne" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "cobol_sql" & x"00"
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE SQ0002
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 1
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLEndSQL"
GIXSQL     END-CALL.

           display "Rijen in emptable" upon scherm.
           display empcount upon scherm.

           perform r81-init-cursor.

           perform r85-verwerk-employee until
                   SQLCODE < 0 or SQLCODE = 100

           perform r89-close-cursor.

       r81-init-cursor.

GIXSQL*    EXEC SQL AT cobol_sql START TRANSACTION END-EXEC.
GIXSQL     CALL STATIC "GIXSQLStartSQL"
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLExec" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "cobol_sql" & x"00"
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE SQ0003
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLEndSQL"
GIXSQL     END-CALL.
           display "start transaction" upon scherm.
           display SQLCODE upon scherm.

GIXSQL*    EXEC SQL OPEN employeecursor END-EXEC.
GIXSQL     IF GIXSQL-CI-F-pgcobol-employeecursor = ' ' THEN
GIXSQL         PERFORM GIXSQL-CI-P-pgcobol-employeecursor
GIXSQL         IF SQLCODE = 0
GIXSQL           MOVE 'X' TO GIXSQL-CI-F-pgcobol-employeecursor
GIXSQL         END-IF
GIXSQL     END-IF
GIXSQL     IF GIXSQL-CI-F-pgcobol-employeecursor = 'X' THEN
GIXSQL         CALL STATIC "GIXSQLCursorOpen" USING
GIXSQL             BY REFERENCE SQLCA
GIXSQL             BY REFERENCE "pgcobol_employeecursor" & x"00"
GIXSQL         END-CALL
GIXSQL     END-IF.

           display "open cursor" upon scherm.
           display SQLCODE upon scherm.

GIXSQL*    EXEC SQL FETCH employeecursor INTO :employee-table END-EXEC.
GIXSQL     CALL STATIC "GIXSQLStartSQL"
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 23
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 256
GIXSQL         BY REFERENCE ENO
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 10
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE LNAME
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 10
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE FNAME
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 20
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE STREET
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 15
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE CITY
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 2
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE ST
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 5
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE ZIP
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DEPT
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 15
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE PAYRATE
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 3
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE COM
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 132
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE MISCDATA
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DNUM1
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DNUM2
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DNUM3
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLCursorFetchOne" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "pgcobol_employeecursor" & x"00"
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLEndSQL"
GIXSQL     END-CALL.

           display "fetch cursor" upon scherm.
           display SQLCODE upon scherm.

       r85-verwerk-employee.

           move ENO to r-ENO.
           move LNAME to r-LNAME.
           move FNAME to r-FNAME.
           move STREET to r-STREET.
           move CITY to r-CITY.
           move ST to r-ST.
           move ZIP to r-ZIP.
           move DEPT to r-DEPT.
           move PAYRATE to r-PAYRATE.
           move COM to r-COM.
           move DNUM1 to r-DNUM1.
           move DNUM2 to r-DNUM2.
           move DNUM3 to r-DNUM3.
           move MISCDATA to miscdata-group.
      *    move miscdata-len to r-miscdata-len.
      *    move miscdata-text to r-miscdata-text.

           move r-ENO to p-ENO.
           move r-LNAME to p-LNAME.
           move r-FNAME to p-FNAME.
           move r-STREET to p-STREET.
           move r-CITY to p-CITY.
           move r-ST to p-ST.
           move r-ZIP to p-ZIP.
           move r-DEPT to p-DEPT.
           move r-PAYRATE to p-PAYRATE.
           move r-COM to p-COM.
           move r-DNUM1 to p-DNUM1.
           move r-DNUM2 to p-DNUM2.
           move r-DNUM3 to p-DNUM3.
           move miscdata-text to p-miscdata-text.

           display employee-row upon scherm.
           perform p00-print.

GIXSQL*    EXEC SQL FETCH employeecursor INTO :employee-table END-EXEC.
GIXSQL     CALL STATIC "GIXSQLStartSQL"
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 23
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 256
GIXSQL         BY REFERENCE ENO
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 10
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE LNAME
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 10
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE FNAME
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 20
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE STREET
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 15
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE CITY
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 2
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE ST
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 5
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE ZIP
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DEPT
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 15
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE PAYRATE
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 3
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE COM
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 16
GIXSQL         BY VALUE 132
GIXSQL         BY VALUE 0
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE MISCDATA
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DNUM1
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DNUM2
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLSetResultParams" USING
GIXSQL         BY VALUE 9
GIXSQL         BY VALUE 4
GIXSQL         BY VALUE -2
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DNUM3
GIXSQL         BY REFERENCE 0
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLCursorFetchOne" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "pgcobol_employeecursor" & x"00"
GIXSQL     END-CALL
GIXSQL     CALL STATIC "GIXSQLEndSQL"
GIXSQL     END-CALL.

           display "fetch cursor" upon scherm.
           display SQLCODE upon scherm.

       r89-close-cursor.

GIXSQL*    EXEC SQL CLOSE employeecursor END-EXEC.
GIXSQL     CALL STATIC "GIXSQLCursorClose" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "pgcobol_employeecursor" & x"00"
GIXSQL     END-CALL.

       r90-init.
           perform s00-connect.
           open output fprinter.

       r99-exit.

           perform s99-disconnect.
           close fprinter.
           perform z99-exit.

       z99-exit.

           stop run.

       s00-connect.
           display "DATASRC" upon scherm.
           display "DBUSR" upon scherm.
           display "DBPWD" upon scherm.

           MOVE 'CONNECT' TO CUR-STEP.
GIXSQL*    EXEC SQL
GIXSQL*       CONNECT TO :DATASRC AS cobol_sql USER :DBUSR USING :DBPWD
GIXSQL*    END-EXEC.
GIXSQL     CALL STATIC "GIXSQLConnect" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE DATASRC
GIXSQL         BY VALUE 64
GIXSQL         BY REFERENCE "cobol_sql" & x"00"
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE x"00"
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE DBUSR
GIXSQL         BY VALUE 64
GIXSQL         BY REFERENCE DBPWD
GIXSQL         BY VALUE 64
GIXSQL     END-CALL.
           display "connect to database" upon scherm.
           display SQLCODE upon scherm.

       s99-disconnect.
           display "DATASRC" upon scherm.
           display "DBUSR" upon scherm.
           display "DBPWD" upon scherm.

           MOVE 'DISCONNECT' TO CUR-STEP.
GIXSQL*    EXEC SQL CONNECT RESET cobol_sql END-EXEC.
GIXSQL     CALL STATIC "GIXSQLConnectReset" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "cobol_sql" & x"00"
GIXSQL         BY VALUE 0
GIXSQL     END-CALL.
GIXSQL*    EXEC SQL DISCONNECT cobol_sql END-EXEC.
GIXSQL     CALL STATIC "GIXSQLConnectReset" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "cobol_sql" & x"00"
GIXSQL         BY VALUE 0
GIXSQL     END-CALL.
           display "disconnect from database" upon scherm.
           display SQLCODE upon scherm.

       p00-print.
           if line-number > 50 then
             move 1 to line-number 
             add 1 to page-number 
             move page-number to f-page-number
             move employee-page to print-buffer
             write file-buffer from print-buffer
             move employee-header to print-buffer
             write file-buffer from print-buffer
             move employee-row to print-buffer
             write file-buffer from print-buffer
           else
             add 1 to page-number 
             move employee-row to print-buffer
             write file-buffer from print-buffer.

       999-PRG-ERR.
           display 'ERR - ' CUR-STEP ' : ' SQLCODE.
           display 'ERR - ' CUR-STEP ' : ' SQLERRMC(1:SQLERRML).
           MOVE -1 TO RETURN-CODE.
GIXSQL*
GIXSQL*   ESQL CURSOR DECLARATIONS (START)
GIXSQL     GO TO GIX-SKIP-CRSR-INIT.
GIXSQL GIXSQL-CI-P-pgcobol-employeecursor.
GIXSQL     CALL STATIC "GIXSQLCursorDeclare" USING
GIXSQL         BY REFERENCE SQLCA
GIXSQL         BY REFERENCE "cobol_sql" & x"00"
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE "pgcobol_employeecursor" & x"00"
GIXSQL         BY VALUE 0
GIXSQL         BY REFERENCE SQ0001
GIXSQL         BY VALUE 0
GIXSQL     END-CALL.
GIXSQL GIX-SKIP-CRSR-INIT.
GIXSQL*
GIXSQL*   ESQL CURSOR DECLARATIONS (END)

Back to: Cobol and PostgreSQL