Kontakt    Impressum

 

Generate Data Access Program for DBD


Generate Data Access Program for DBD

Das Programmmodule, dass hier generiert wird kann für alle Datenbankzugriffe oder einzeln ausgewählte Zugriffsfunktionen generiert werden. Die Daten werden in der ursprünglichen Datenstruktur (Segmentimage) bereitgestellt und in die relationalen Strukturen und Formate umgesetzt.

Code-Ausschnitte für ein Data Access Program, dass nur für einen Update generiert wurde.
      * ------------------------------------------------------------ *
      *                                                              *
      *  DATA ACCESS PROGRAM: DEM                                    *
      *  FOR DATABASE: DEM                                           *
      *                                                              *
      *  GENERATED BY DBAutoMig Vers: 1.0.0                          *
      *                                                              *
      *  DATE: 21.2.2004 10:38:18                                    *
      *                                                              *
      * ------------------------------------------------------------ *
      *                                                              *
       IDENTIFICATION DIVISION.
       PROGRAM-ID.    DEM.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       DATA DIVISION.
       FILE SECTION.
      * ------------------------------------------------------------ *
      *      WORKING-STORAGE
      * ------------------------------------------------------------ *
       WORKING-STORAGE SECTION.
          EXEC SQL INCLUDE SQLCA END-EXEC.
       01 STATUS-CURSOR         PIC X(8) VALUE "C".
             88 CURSOR-CLOSE             VALUE "C".
             88 CURSOR-OPEN              VALUE "O".
       01  IND                  PIC S9(9) COMP VALUE 0.
      *  HOSTVARIABLEN                                               *
      *   SEGMENT: DEMUSW                                            *
      *    TABLE: DEM_DEMUSW                                         *
       01 DCL-H001.
      *  PRIMARY KEY                                                 *
           10 H001-TRANCODE                    PIC X(79).
      *  DATA FIELDS                                                 *
           10 H001-ADD                         PIC X(1).
           10 H001-ADDA                        PIC X(1).
           10 H001-ADDC                        PIC X(1).
           10 H001-CHANGE                      PIC X(7).
  ...........
           10 H001-REVIEW-TESTC                PIC X(1).
      *                                                              *
      *   SEGMENT: DEMDEV                                            *
      *    TABLE: DEM_DEMDEV                                         *
       01 DCL-H002.
      *  PRIMARY KEY                                                 *
           10 H002-TRANCODE                    PIC X(79).
           10 H002-TIMESTAMP-1                 PIC X(26).
      *  DATA FIELDS                                                 *
           10 H002-ELE-CHAR-CNT                PIC S9(3) COMP-3.
           10 H002-EXPANSION                   PIC X(29).
           10 H002-KEY                         PIC X(32).
           10 H002-KEY-CHAR-CNT                PIC S9(3) COMP-3.
           10 H002-KEY-SEQ                     PIC X(8).
           10 H002-LAST-ACT-DATE               PIC S9(6) COMP-3.
  ...........
           10 H002-TABLE-DELETE-IND            PIC X(1).
      *                                                              *
      *   SEGMENT: DEMUMS                                            *
      *    TABLE: DEM_DEMUMS                                         *
             COPY TESTA.
      *    TABLE: DEM_DEMUMS_1                                       *
             COPY TESTA1.
      *    TABLE: DEM_DEMUMS_2                                       *
             COPY TESTA2.
      *    TABLE: DEM_DEMUMS_3                                       *
       01 DCL-H006.
      *  PRIMARY KEY                                                 *
           10 H006-TRANCODE                    PIC X(79).
           10 H006-TIMESTAMP-1                 PIC X(26).
           10 H006-OCCURS-SEQ                  PIC S9(4) COMP.
      *  DATA FIELDS                                                 *
           10 H006-HV-WP-EINHEIT               PIC X(3).
           10 H006-HV-WP-STUECK                PIC S9(10)V9(5) COMP-3.
      *                                                              *
      *   SEGMENT: DEMZIN                                            *
      *    TABLE: DEM_DEMZIN                                         *
   ...........
      *                                                              *
       77 PROG-TESTA    PIC X(8) VALUE "TESTA".
       77 PROG-TESTA1    PIC X(8) VALUE "TESTA1".
       77 PROG-TESTA2    PIC X(8) VALUE "TESTA2".
      *
       01 CONVERSION-RULES         PIC X(32).
      *
       01 CONVERSION-FIELD-NAME    PIC X(32).
      *
       01 CONV-INTPUT-IS           PIC X VAlUE SPACE.
           88 CONV-INTPUT-IS-CHAR      VAlUE SPACE.
           88 CONV-INTPUT-IS-NUM       VAlUE "N".
       01 CONVERSION-INPUT         PIC X(8).
       01 CONVERSION-INPUT-TABX REDEFINES CONVERSION-INPUT
                 OCCURS 8 TIMES PIC X.
       01 CONVERSION-INPUT-TABN REDEFINES CONVERSION-INPUT
                 OCCURS 8 TIMES PIC 9.
  ...........
      * ------------------------------------------------------------ *
      *      LINKAGE SECTION
      * ------------------------------------------------------------ *
       LINKAGE SECTION.
       01 PROG-FUNCTION             PIC X(6).
       01 PROG-SEGMENT              PIC X(8).
       01 KEY-FELDER.
            05 ROOT-KEY.
              10 KEY-DEMUSW-TRANCODE              PIC   X(79).
            05 DEMDEV-KEY.
              10 KEY-DEMDEV-TIMESTAMP-1           PIC   X(26).
            05 DEMUMS-KEY.
              10 KEY-DEMUMS-TIMESTAMP-1           PIC   X(26).
            05 DEMZIN-KEY.
              10 KEY-DEMZIN-TIMESTAMP-2           PIC   X(26).
      *
      *  IO-AREA FOR DBD DEM
       01 WORK-IO-AREA.
           05 IO-AREA         PIC X(344).
           05 IO-AREA-DEMUSW    REDEFINES IO-AREA.
              10 IO-DEMUSW-TRANCODE               PIC X(79).
              10 IO-DEMUSW-ADDC                   PIC X(1).
              10 IO-DEMUSW-ADDA                   PIC X(1).
              10 IO-DEMUSW-ADD                    PIC X(1).
  ...........
              10 IO-DEMUSW-EXIT                   PIC X(1).
           05 IO-AREA-DEMDEV    REDEFINES IO-AREA.
              10 IO-DEMDEV-KEY-SEQ                PIC X(8).
              10 IO-DEMDEV-KEY                    PIC X(32).
              10 IO-DEMDEV-EXPANSION              PIC X(29).
  ...........
           05 IO-AREA-DEMUMS    REDEFINES IO-AREA.
              10 IO-DEMUMS-SWIFT-MT               PIC 9(3).
              10 IO-DEMUMS-SWIFT-ERF-C            PIC 9(6).
              10 IO-DEMUMS-SWIFT-STAT-C           PIC X(1).
              10 IO-DEMUMS-FREI-DAT               PIC S9(8)
                                                  COMP-3.
  ...........
              10 IO-DEMUMS-HV-ORT-TEXT-1          PIC X(59).
              10 IO-DEMUMS-HV-ORT-TEXT-2-4        PIC X(195).
              10 IO-DEMUMS-HV-STRV-DAT            PIC S9(8)
                                                  COMP-3.
              10 FILLER             OCCURS 9 TIMES.
                 15 IO-DEMUMS-HV-WP-DT-C             PIC 9(6).
                 15 IO-DEMUMS-HV-WP-ISO-C            PIC X(12).
                 15 IO-DEMUMS-HV-WP-BEZ-K            PIC X(35).
              10 IO-DEMUMS-INFO-S-E               PIC X(210).
              10 IO-DEMUMS-SWIFT-LEN-INFO         PIC 9(4).
              10 FILLER             OCCURS 25 TIMES.
                 15 IO-DEMUMS-TEXT-ZEILE             PIC X(70).
              10 IO-DEMUMS-SWIFT-LEN-TEXT         PIC 9(4).
              10 IO-DEMUMS-MT-599-C               PIC X(1).
              10 IO-DEMUMS-SPRACH-C               PIC 9(1).
              10 IO-DEMUMS-ERST-SB                PIC 9(7).
              10 IO-DEMUMS-FREI-SB                PIC 9(7).
              10 FILLER             OCCURS 9 TIMES.
                 15 IO-DEMUMS-HV-WP-EINHEIT          PIC X(3).
                 15 IO-DEMUMS-HV-WP-STUECK
                                         PIC S9(10)V9(5) COMP-3.
  ...........
               COPY DBADERRC.
      * ------------------------------------------------------------ *
      *      PROCEDURE DIVISION
      * ------------------------------------------------------------ *
       PROCEDURE DIVISION USING
                          PROG-FUNCTION,
                          PROG-SEGMENT,
                          KEY-FELDER,
                          WORK-IO-AREA,
                          DBAUTOMIG-SQLERROR.
      *                                                              *

              EVALUATE PROG-FUNCTION
              WHEN "UPDATE"
                   PERFORM UPDATE-SECTION
              WHEN OTHER
                   MOVE 2   TO ERROR-COUNT
                   MOVE "PROG-FUNCTION INVALID"
                            TO ERROR-MESSAGE-TEXT(1)
                   MOVE PROG-FUNCTION
                            TO ERROR-MESSAGE-TEXT(2)
              END-EVALUATE.
      *                                                              *
              GOBACK.
      * ------------------------------------------------------------ *
      *      UPDATE-SECTION
      * ------------------------------------------------------------ *
       UPDATE-SECTION SECTION.
      *                                                              *
              EVALUATE PROG-SEGMENT
              WHEN "DEMUSW"
                  PERFORM UPDATE-DEMUSW
              WHEN "DEMDEV"
                  PERFORM UPDATE-DEMDEV
              WHEN "DEMUMS"
                  PERFORM UPDATE-DEMUMS
              WHEN "DEMZIN"
                  PERFORM UPDATE-DEMZIN
              WHEN OTHER
                   MOVE 2   TO ERROR-COUNT
                   MOVE "PROG-SEGMENT INVALID"
                            TO ERROR-MESSAGE-TEXT(1)
                   MOVE PROG-SEGMENT
                            TO ERROR-MESSAGE-TEXT(2)
              END-EVALUATE.
      *                                                              *
      * ------------------------------------------------------------ *
      *      UPDATE SEGMENT DEMUSW
      * ------------------------------------------------------------ *
       UPDATE-DEMUSW SECTION.
      *                                                              *
            MOVE IO-DEMUSW-TRANCODE
                        TO H001-TRANCODE
                           KEY-DEMUSW-TRANCODE
      *                                                              *
      *    TABLE: DEM_DEMUSW                                         *
            PERFORM MOVE-DEM-DEMUSW-TO-REL.
            PERFORM UPDATE-DEM-DEMUSW.
      * ------------------------------------------------------------ *
      *      MOVE IO-AREA SEGMENT: DEMUSW TO HOSTVAR                 *
      *                   TABLE:   DEM_DEMUSW                        *
      * ------------------------------------------------------------ *
       MOVE-DEM-DEMUSW-TO-REL SECTION.
      *                                                              *
              MOVE IO-DEMUSW-ADD
                             TO H001-ADD.
              MOVE IO-DEMUSW-ADDA
                             TO H001-ADDA.
              MOVE IO-DEMUSW-ADDC
                             TO H001-ADDC.
              MOVE IO-DEMUSW-CHANGE
                             TO H001-CHANGE.
  ...........
              MOVE IO-DEMUSW-REVIEW-TESTC
                             TO H001-REVIEW-TESTC.
      * ------------------------------------------------------------ *
      *      UPDATE TABLE: DEM_DEMUSW
      * ------------------------------------------------------------ *
       UPDATE-DEM-DEMUSW SECTION.
      *                                                              *
            EXEC SQL UPDATE V_DEM_DEMUSW
            SET ADD = :H001-ADD
              , ADDA = :H001-ADDA
              , ADDC = :H001-ADDC
              , CHANGE = :H001-CHANGE
              , CHANGEA = :H001-CHANGEA
              , CHANGEC = :H001-CHANGEC
              , EXIT = :H001-EXIT
              , EXITA = :H001-EXITA
              , EXITC = :H001-EXITC
              , INQUIRE = :H001-INQUIRE
              , INQUIREA = :H001-INQUIREA
              , INQUIREC = :H001-INQUIREC
              , REVIEW_DEPT = :H001-REVIEW-DEPT
              , REVIEW_DEPTA = :H001-REVIEW-DEPTA
              , REVIEW_DEPTC = :H001-REVIEW-DEPTC
              , REVIEW_TEST = :H001-REVIEW-TEST
              , REVIEW_TESTA = :H001-REVIEW-TESTA
              , REVIEW_TESTC = :H001-REVIEW-TESTC
            WHERE TRANCODE = :H001-TRANCODE
            END-EXEC.
            MOVE SQLCA TO DBAMERRC-SQLCA.
            IF SQLCODE OF SQLCA NOT = 0
               PERFORM DBAUTOMIG-SQLERROR
            END-IF.
      * ------------------------------------------------------------ *
      *      UPDATE SEGMENT DEMDEV
      * ------------------------------------------------------------ *
       UPDATE-DEMDEV SECTION.
      *                                                              *
            MOVE KEY-DEMDEV-TIMESTAMP-1
                        TO H002-TIMESTAMP-1
            MOVE KEY-DEMUSW-TRANCODE
                        TO H002-TRANCODE
      *                                                              *
      *    TABLE: DEM_DEMDEV                                         *
            PERFORM MOVE-DEM-DEMDEV-TO-REL.
            PERFORM UPDATE-DEM-DEMDEV.
      * ------------------------------------------------------------ *
      *      MOVE IO-AREA SEGMENT: DEMDEV TO HOSTVAR                 *
      *                   TABLE:   DEM_DEMDEV                        *
      * ------------------------------------------------------------ *
       MOVE-DEM-DEMDEV-TO-REL SECTION.
      *                                                              *
              MOVE IO-DEMDEV-ELE-CHAR-CNT
                             TO H002-ELE-CHAR-CNT.
              MOVE IO-DEMDEV-EXPANSION
                             TO H002-EXPANSION.
              MOVE IO-DEMDEV-KEY
                             TO H002-KEY.
   ...........
              MOVE IO-DEMDEV-TABLE-DELETE-IND
                             TO H002-TABLE-DELETE-IND.
      * ------------------------------------------------------------ *
      *      UPDATE TABLE: DEM_DEMDEV
      * ------------------------------------------------------------ *
       UPDATE-DEM-DEMDEV SECTION.
      *                                                              *
            EXEC SQL UPDATE V_DEM_DEMDEV
            SET ELE_CHAR_CNT = :H002-ELE-CHAR-CNT
              , EXPANSION = :H002-EXPANSION
              , KEY = :H002-KEY
              , KEY_CHAR_CNT = :H002-KEY-CHAR-CNT
              , KEY_SEQ = :H002-KEY-SEQ
              , LAST_ACT_DATE = :H002-LAST-ACT-DATE
              , MAX_ELE_CNT = :H002-MAX-ELE-CNT
              , NUMERIC_ELE = :H002-NUMERIC-ELE
              , NUMERIC_KEY = :H002-NUMERIC-KEY
              , PASSWORD = :H002-PASSWORD
              , PASSWORD_PROT = :H002-PASSWORD-PROT
              , TABLE_DELETE_IND = :H002-TABLE-DELETE-IND
            WHERE TRANCODE = :H002-TRANCODE
             AND TIMESTAMP_1 = :H002-TIMESTAMP-1
            END-EXEC.
            MOVE SQLCA TO DBAMERRC-SQLCA.
            IF SQLCODE OF SQLCA NOT = 0
               PERFORM DBAUTOMIG-SQLERROR
            END-IF.
      * ------------------------------------------------------------ *
      *      UPDATE SEGMENT DEMUMS
      * ------------------------------------------------------------ *
       UPDATE-DEMUMS SECTION.
      *                                                              *
            MOVE IO-DEMUMS-TIMESTAMP-1
                        TO TESTA-TIMESTAMP-1
                           KEY-DEMUMS-TIMESTAMP-1
            MOVE KEY-DEMUSW-TRANCODE
                        TO TESTA-TRANCODE
      *                                                              *
      *    TABLE: DEM_DEMUMS                                         *
            PERFORM MOVE-DEM-DEMUMS-TO-REL.
            PERFORM UPDATE-DEM-DEMUMS.
      *    TABLE: DEM_DEMUMS_1                                       *
      *    OCCURS: 9                                                 *
            PERFORM MOVE-DEM-DEMUMS-1-TO-REL
                    VARYING IND FROM 1 BY 1
                       UNTIL IND > 9.
      *    TABLE: DEM_DEMUMS_2                                       *
      *    OCCURS: 25                                                *
            PERFORM MOVE-DEM-DEMUMS-2-TO-REL
                    VARYING IND FROM 1 BY 1
                       UNTIL IND > 25.
      *    TABLE: DEM_DEMUMS_3                                       *
      *    OCCURS: 9                                                 *
            PERFORM MOVE-DEM-DEMUMS-3-TO-REL
                    VARYING IND FROM 1 BY 1
                       UNTIL IND > 9.
      * ------------------------------------------------------------ *
      *      MOVE IO-AREA SEGMENT: DEMUMS TO HOSTVAR                 *
      *                   TABLE:   DEM_DEMUMS                        *
      * ------------------------------------------------------------ *
       MOVE-DEMUMS-TO-REL SECTION.
      *                                                              *
              MOVE IO-DEMUMS-ACC-KD-D
                             TO TESTA-ACC-KD-D.
              MOVE IO-DEMUMS-ANTWORT-DAT
                             TO TESTA-ANTWORT-DAT.
              MOVE IO-DEMUMS-ANTWORT-UHR
                             TO TESTA-ANTWORT-UHR.
              MOVE IO-DEMUMS-BES-TYP-C
                             TO TESTA-BES-TYP-C.
              MOVE IO-DEMUMS-BEZ-REF
  ...........
              MOVE IO-DEMUMS-ERST-SB
                             TO TESTA-ERST-SB.
           MOVE "YYYYMMDD" TO CONVERSION-RULES
           MOVE "EX-DAT"
                             TO CONVERSION-FIELD-NAME
           MOVE IO-DEMUMS-EX-DAT
                             TO CONVERSION-INPUT-NUM
           SET CONV-INTPUT-IS-NUM TO TRUE
           PERFORM DT00008-CONVERSION-TO-REL
           MOVE CONVERSION-OUTPUT-DATE
                             TO TESTA-EX-DAT.
  ...........
           IF IO-DEMUMS-FREI-DAT = ZERO
              MOVE -1 TO TESTA-FREI-DAT-NULL
           ELSE
              MOVE  0 TO TESTA-FREI-DAT-NULL
              MOVE "YYYYMMDD,NULL=ZERO" TO CONVERSION-RULES
              MOVE "FREI-DAT"
                             TO CONVERSION-FIELD-NAME
              MOVE IO-DEMUMS-FREI-DAT
                             TO CONVERSION-INPUT-NUM
              SET CONV-INTPUT-IS-NUM TO TRUE
              PERFORM DT00008-CONVERSION-TO-REL
              MOVE CONVERSION-OUTPUT-DATE
                             TO TESTA-FREI-DAT
           END-IF.
              MOVE IO-DEMUMS-FREI-SB
                             TO TESTA-FREI-SB.
  ...........
           IF IO-DEMUMS-WP-ISO-C = LOW-VALUE
              MOVE -1 TO TESTA-WP-ISO-C-NULL
           ELSE
              MOVE  0 TO TESTA-WP-ISO-C-NULL
              MOVE IO-DEMUMS-WP-ISO-C
                             TO TESTA-WP-ISO-C
           END-IF.
              MOVE IO-DEMUMS-WP-ISO-C2
                             TO TESTA-WP-ISO-C2.
              MOVE IO-DEMUMS-WP-STUECK
                             TO TESTA-WP-STUECK.
              MOVE IO-DEMUMS-WP-STUECK2
                             TO TESTA-WP-STUECK2.
              MOVE IO-DEMUMS-ZAHLBAR-DAT
                             TO TESTA-ZAHLBAR-DAT.
      * ------------------------------------------------------------ *
      *      UPDATE TABLE: DEM_DEMUMS
      * ------------------------------------------------------------ *
       UPDATE-DEM-DEMUMS SECTION.
      *                                                              *
            EXEC SQL UPDATE V_DEM_DEMUMS
            SET ACC_KD_D = :TESTA-ACC-KD-D
              , ANTWORT_DAT = :TESTA-ANTWORT-DAT
              , ANTWORT_UHR = :TESTA-ANTWORT-UHR
              , BES_TYP_C = :TESTA-BES-TYP-C
              , BEZ_REF = :TESTA-BEZ-REF
              , BIS_DAT = :TESTA-BIS-DAT
              , BR_EINHEIT = :TESTA-BR-EINHEIT
              , BR_EINHEIT_NEU = :TESTA-BR-EINHEIT-NEU
              , BR_NENNER = :TESTA-BR-NENNER
              , BR_NENNER_NEU = :TESTA-BR-NENNER-NEU
  ...........
              , ZAHLBAR_DAT = :TESTA-ZAHLBAR-DAT
            WHERE TRANCODE = :TESTA-TRANCODE
             AND TIMESTAMP_1 = :TESTA-TIMESTAMP-1
            END-EXEC.
            MOVE SQLCA TO DBAMERRC-SQLCA.
            IF SQLCODE OF SQLCA NOT = 0
               PERFORM DBAUTOMIG-SQLERROR
            END-IF.
      * ------------------------------------------------------------ *
      *        UPDATE TABLE:   DEM_DEMUMS                            *
      * ------------------------------------------------------------ *
       UPDATE-DEM-DEMUMS SECTION.
      *                                                              *
            CALL PROG-TESTA USING
                                "UPD001",
                                DCL-DEM-DEMUMS,
                                DBAUTOMIG-SQLERROR.
      * ------------------------------------------------------------ *
      *      MOVE IO-AREA SEGMENT: DEMUMS TO HOSTVAR                 *
      *                   TABLE:   DEM_DEMUMS_1                      *
      * ------------------------------------------------------------ *
       MOVE-DEM-DEMUMS-1-TO-REL SECTION.
      *                                                              *
              MOVE IO-DEMUMS-HV-WP-BEZ-K(IND)
                             TO TESTA1-HV-WP-BEZ-K.
              MOVE IO-DEMUMS-HV-WP-DT-C(IND)
                             TO TESTA1-HV-WP-DT-C.
              MOVE IO-DEMUMS-HV-WP-ISO-C(IND)
                             TO TESTA1-HV-WP-ISO-C.
              MOVE IND       TO TESTA1-OCCURS-SEQ.
              PERFORM UPDATE-DEM-DEMUMS-1.
...........

zum Seitenanfang