
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