Menu

fixed basic ocesql program

J McNamara
2024-10-13
2024-10-13
  • J McNamara

    J McNamara - 2024-10-13

    IDENTIFICATION DIVISION.
    PROGRAM-ID. SEQUENCETRACKER.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
    
       01  DBNAME                  PIC  X(30) VALUE SPACE.
       01  USERNAME                PIC  X(30) VALUE SPACE.
       01  PASSWD                  PIC  X(12) VALUE SPACE.
       01 WS-BASE-YEAR            PIC 9(4).
       01 WS-MONTH                PIC 9(2).
       01 WS-MYID                 PIC 9(11).
       01 WS-SEQUENCE-NUM         PIC 9(13) VALUE 1.
       01 WS-FORMATTED-SEQ        PIC X(25).
       01 WS-TRANSACTION-TYPE     PIC 9(3).
       01 WS-TRANSACTION-DESC     PIC X(50).
       01 SQL-CURSOR              PIC S9(4) COMP.
       01 SQLCA.
           05 SQLCAID              PIC X(8).
           05 SQLCABC              PIC S9(9) COMP-5.
           05 SQLCODE              PIC S9(9) COMP-5.
           05 SQLERRM.
               49 SQLERRML          PIC S9(4) COMP-5.
               49 SQLERRMC          PIC X(70).
           05 SQLSTATE             PIC X(5).
    
       PROCEDURE DIVISION.
       MAIN-PROCEDURE.
           MOVE  "ocesql@localhost" TO DBNAME.
           MOVE  "postgres" TO USERNAME.
           MOVE  "mypass" TO PASSWD.
    
           EXEC SQL
               CONNECT :USERNAME IDENTIFIED BY :PASSWD USING :DBNAME
           END-EXEC.
    
           DISPLAY "ENTER BASE YEAR (YYYY):".
           ACCEPT WS-BASE-YEAR.
           DISPLAY "ENTER MONTH (MM):".
           ACCEPT WS-MONTH.
           DISPLAY "TRANSACTION TYPE (3 DIGIT):".
           ACCEPT WS-TRANSACTION-TYPE.
    
           PERFORM FORMAT-SEQUENCE.
           DISPLAY "SEQUENCE NUM:  ", WS-SEQUENCE-NUM.
    
           DISPLAY "TRANSACTION DESC:".
           ACCEPT WS-TRANSACTION-DESC.
    
           DISPLAY "MYID ENTER:".
           ACCEPT WS-MYID.
    
           PERFORM SAVE-RECORD.
    
           DISPLAY "RECORD SAVED. PRESS ENTER TO EXIT.".
           ACCEPT WS-TRANSACTION-DESC.
    
           STOP RUN.
    
       FORMAT-SEQUENCE.
           STRING WS-SEQUENCE-NUM DELIMITED BY SIZE
                  "-" DELIMITED BY SIZE
                  WS-BASE-YEAR DELIMITED BY SIZE "-"
                  WS-MONTH DELIMITED BY SIZE "-"
                  WS-TRANSACTION-TYPE DELIMITED BY SIZE
         FUNCTION NUMVAL-C(WS-FORMATTED-SEQ) DELIMITED BY SIZE
                  INTO WS-FORMATTED-SEQ
           END-STRING.
    
       SAVE-RECORD.
    
           DISPLAY "Inserting Record with Values:".
           DISPLAY "seq id: ", WS-SEQUENCE-NUM.
           DISPLAY "TRANS_TYPE: ", WS-TRANSACTION-TYPE.
           DISPLAY "TRANS_DESC: ", WS-TRANSACTION-DESC.
           DISPLAY "MYID: ", WS-MYID.
           DISPLAY "composite seq", WS-FORMATTED-SEQ.
    
       EXEC SQL
           INSERT INTO TSEQUENCE(SEQ_KEY,TRANS_TYPE,TRANS_DESC) VALUES
                  (:WS-FORMATTED-SEQ, :WS-TRANSACTION-TYPE,
                  :WS-TRANSACTION-DESC)
       END-EXEC
    
           IF SQLCODE NOT = 0
               DISPLAY "ERROR: ", SQLSTATE, SQLCODE
           ELSE
               EXEC SQL
                   COMMIT;
               END-EXEC.
               DISPLAY "RECORD SUCCESSFULLY INSERTED.".
    
       END PROGRAM SEQUENCETRACKER.
    

    ===================================================================

    $> ./SEQGEN.exe
    ENTER BASE YEAR (YYYY):
    2024
    ENTER MONTH (MM):
    10
    TRANSACTION TYPE (3 DIGIT):
    002
    SEQUENCE NUM: 0000000000001
    TRANSACTION DESC:
    p
    MYID ENTER:
    1
    Inserting Record with Values:
    SEQUENCE: 0000000000001
    TRANS_TYPE: 002
    TRANS_DESC: p
    MYID: 00000000001
    0000000000001-2024-10-002
    RECORD SUCCESSFULLY INSERTED.
    RECORD SAVED. PRESS ENTER TO EXIT.

    hi-

    I am having a little more success with the cobol program
    that i am fooling with. Thanks for the help with ocesql.

    jim

    Sent with Proton Mail secure email.

     

Anonymous
Anonymous

Add attachments
Cancel