IDENTIFICATION DIVISION .
PROGRAM-ID . DML061.
ENVIRONMENT DIVISION .
CONFIGURATION SECTION .
SOURCE-COMPUTER . xyz.
OBJECT-COMPUTER . xyz.
DATA DIVISION .
WORKING-STORAGE SECTION .
* Standard COBOL (file "DML061.SCO") calling SQL
* procedures in file "DML061.MCO"
****************************************************************
*
* COMMENT SECTION
*
* DATE 1989/07/21 STANDARD COBOL LANGUAGE
* NIST SQL VALIDATION TEST SUITE V6.0
* DISCLAIMER:
* This program was written by employees of NIST to test SQL
* implementations for conformance to the SQL standards.
* NIST assumes no responsibility for any party's use of
* this program.
*
* DML061.SCO
* WRITTEN BY: SUN DAJUN
* TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE
*
* THIS ROUTINE TESTS BETWEEN, SET FUNCTIONS, AND INTEGRITY.
*
* REFERENCES
* AMERICAN NATIONAL STANDARD database language - SQL
* X3.135-1989
*
* SECTION 5.12 <between predicate>
* SECTION 5.8 <set specification>
* SECTION 7.3 <procedure> GR 3b
*
****************************************************************
* EXEC SQL BEGIN DECLARE SECTION END-EXEC
01 EMPNO1 PIC X(3).
01 HOURS1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 count1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 count2 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 count3 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 count4 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 max1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 min1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 sum1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 ff1 PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 indic1 PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
01 indic2 PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
01 indic3 PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
01 EMPNA1 PIC X(20).
01 EMPNA2 PIC X(20).
01 EMPNA3 PIC X(20).
* EXEC SQL END DECLARE SECTION END-EXEC
01 SQLCODE PIC S9(9) COMP .
01 errcnt PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
01 uid PIC X(18).
01 uidx PIC X(18).
01 i PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 flag PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 cnt PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 SQL-COD PIC S9(9) DISPLAY SIGN LEADING SEPARATE .
01 DISP1 PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
01 DISP2 PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
01 DISP3 PIC S9(4) DISPLAY SIGN LEADING SEPARATE .
* date_time declaration *
01 TO-DAY PIC 9(6).
01 THE-TIME PIC 9(8).
PROCEDURE DIVISION .
P0.
MOVE "HU" TO uid
CALL "AUTHID" USING uid
MOVE "not logged in, not" TO uidx
CALL "AUTHCK" USING SQLCODE uidx
MOVE SQLCODE TO SQL-COD
if (uid NOT = uidx) then
DISPLAY "ERROR: User " uid " expected."
DISPLAY "User " uidx " connected."
DISPLAY " "
STOP RUN
END-IF
MOVE 0 TO errcnt
DISPLAY
"SQL Test Suite, V6.0, Module COBOL, dml061.sco"
DISPLAY " "
DISPLAY
"59-byte ID"
DISPLAY "TEd Version #"
DISPLAY " "
* date_time print *
ACCEPT TO-DAY FROM DATE
ACCEPT THE-TIME FROM TIME
DISPLAY "Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
******************** BEGIN TEST0269 *******************
*BETWEEN value expressions in wrong order
DISPLAY "BETWEEN value expressions in wrong order "
DISPLAY "Reference X3.135-1989 section 5.12 GR 2 "
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0269 "
DISPLAY " Reference 5.12 General Rules )"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count1"
DISPLAY " FROM WORKS"
DISPLAY " WHERE HOURS BETWEEN 80 AND 40;"
DISPLAY " INSERT INTO WORKS"
DISPLAY " VALUES('E6','P6',-60);"
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count2"
DISPLAY " FROM WORKS"
DISPLAY " WHERE HOURS BETWEEN :max1 AND :min1;"
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count3"
DISPLAY " FROM WORKS"
DISPLAY " WHERE HOURS BETWEEN :min1 AND :max1;"
DISPLAY " "
MOVE -1 TO count1
MOVE -1 TO count2
MOVE -1 TO count3
* EXEC SQL SELECT COUNT(*) INTO :count1
* FROM WORKS
* WHERE HOURS BETWEEN 80 AND 40 END-EXEC
CALL "SUB1" USING SQLCODE count1
MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO WORKS
* VALUES('E6','P6',-60) END-EXEC
CALL "SUB2" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE -40 TO max1
MOVE -80 TO min1
* EXEC SQL SELECT COUNT(*) INTO :count2
* FROM WORKS
* WHERE HOURS BETWEEN :max1 AND :min1 END-EXEC
CALL "SUB3" USING SQLCODE count2 max1 min1
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count3
* FROM WORKS
* WHERE HOURS BETWEEN :min1 AND :max1 END-EXEC
CALL "SUB4" USING SQLCODE count3 min1 max1
MOVE SQLCODE TO SQL-COD
* EXEC SQL ROLLBACK WORK;
CALL "SUB5" USING SQLCODE
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " count1 = 0"
DISPLAY " count2 = 0"
DISPLAY " count3 = 1"
DISPLAY " Your answer is :"
DISPLAY " count1 = " , count1
DISPLAY " count2 = " , count2
DISPLAY " count3 = " , count3
if (count1 = 0 AND count2 = 0 AND count3 = 1) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0269','pass','MCO') END-EXEC
CALL "SUB6" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0269','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB7" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB8" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0269 *******************
******************** BEGIN TEST0270 *******************
*BETWEEN approximate and exact numeric values
DISPLAY "BETWEEN value with comparable data types "
DISPLAY "Reference X3.135-1989 section 5.12 SR 1 "
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0270 "
DISPLAY " Reference 5.12 Syntax Rules "
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count1"
DISPLAY " FROM WORKS"
DISPLAY " WHERE HOURS BETWEEN :ff1 AND :HOURS1 OR
- " "
DISPLAY " HOURS BETWEEN 19.999 AND 2.001E1;"
DISPLAY " "
MOVE -1 TO count1
MOVE 11 TO ff1
MOVE 12 TO HOURS1
* EXEC SQL SELECT COUNT(*) INTO :count1
* FROM WORKS
* WHERE HOURS BETWEEN :ff1 AND :HOURS1 OR
* HOURS BETWEEN 19.999 AND 2.001E1 END-EXEC
CALL "SUB9" USING SQLCODE count1 ff1 HOURS1
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " count1 = 6"
DISPLAY " Your answer is :"
DISPLAY " count1 = " , count1
if (count1 = 6) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0270','pass','MCO') END-EXEC
CALL "SUB10" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0270','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB11" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB12" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0270 *******************
******************** BEGIN TEST0271 *******************
*COUNT(*) with Cartesian product subset
DISPLAY "COUNT (*) with Cartesian product subset"
DISPLAY "Reference X3.135-1989 section:"
DISPLAY " section 5.8 GR 4b"
DISPLAY " section 5.20 GR 2b"
DISPLAY " section 5.21 1,2"
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0271 "
DISPLAY " Reference 5.8 General Rules )"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count1"
DISPLAY " FROM WORKS,STAFF"
DISPLAY " WHERE WORKS.EMPNUM = 'E1';"
DISPLAY " "
MOVE 0 TO count1
* EXEC SQL SELECT COUNT(*) INTO :count1
* FROM WORKS,STAFF
* WHERE WORKS.EMPNUM = 'E1' END-EXEC
CALL "SUB13" USING SQLCODE count1
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " count1 = 30"
DISPLAY " Your answer is :"
DISPLAY " count1 = " , count1
if (count1 = 30) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0271','pass','MCO') END-EXEC
CALL "SUB14" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0271','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB15" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB16" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0271 *******************
******************** BEGIN TEST0272 *******************
*Statement rollback for integrity violation.
DISPLAY " Statement rollback for integrity violation "
DISPLAY "Reference X3.135-1989 section 7.3 General Rules 3b"
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0272 "
DISPLAY " Reference 7.3 General Rules )"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " UPDATE WORKS"
DISPLAY " SET EMPNUM = 'E7'"
DISPLAY " WHERE EMPNUM = 'E1' OR EMPNUM = 'E4';"
DISPLAY " "
DISPLAY " INSERT INTO WORKS "
DISPLAY " SELECT 'E3',PNUM,17 FROM PROJ;"
DISPLAY " "
DISPLAY " UPDATE V_WORKS1"
DISPLAY " SET HOURS = HOURS - 9;"
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count4 FROM WORKS"
DISPLAY " WHERE EMPNUM = 'E7' OR HOURS = 31 OR HOURS =
- " 17;"
DISPLAY " "
MOVE 0 TO count1
MOVE 0 TO count2
MOVE 0 TO count3
MOVE -1 TO count4
* EXEC SQL UPDATE WORKS
* SET EMPNUM = 'E7'
* WHERE EMPNUM = 'E1' OR EMPNUM = 'E4' END-EXEC
CALL "SUB17" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO count1
* EXEC SQL INSERT INTO WORKS
* SELECT 'E3',PNUM,17 FROM PROJ END-EXEC
CALL "SUB18" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO count2
* EXEC SQL UPDATE V_WORKS1
* SET HOURS = HOURS - 9 END-EXEC
CALL "SUB19" USING SQLCODE
MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO count3
* EXEC SQL SELECT COUNT(*) INTO :count4 FROM WORKS
* WHERE EMPNUM = 'E7' OR HOURS = 31 OR HOURS = 17 END-EXEC
CALL "SUB20" USING SQLCODE count4
MOVE SQLCODE TO SQL-COD
* EXEC SQL ROLLBACK WORK;
CALL "SUB21" USING SQLCODE
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " count1 < 0"
DISPLAY " count2 < 0"
DISPLAY " count3 < 0"
DISPLAY " count4 = 0"
DISPLAY " Your answer is :"
DISPLAY " count1 = " , count1
DISPLAY " count2 = " , count2
DISPLAY " count3 = " , count3
DISPLAY " count4 = " , count4
if (count1 < 0 AND count2 < 0 AND count3 < 0 AND
count4 = 0) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0272','pass','MCO') END-EXEC
CALL "SUB22" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0272','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB23" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB24" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0272 *******************
******************** BEGIN TEST0273 *******************
*SUM, MAX, MIN = NULL for empty arguments
DISPLAY " SUM, MAX, MIN = NULL "
DISPLAY "Reference X3.135-1989 section 5.8 GR 4c "
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0273 "
DISPLAY " Reference 5.8 General Rules )"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " UPDATE WORKS"
DISPLAY " SET HOURS = NULL;"
DISPLAY " "
DISPLAY " SELECT SUM(HOURS),MAX(HOURS),MIN(HOURS)"
DISPLAY " INTO
- " :sum1:indic1,:max1:indic2,:min1:indic3"
DISPLAY " FROM WORKS;"
DISPLAY " "
MOVE 0 TO indic1
MOVE 0 TO indic2
MOVE 0 TO indic3
* EXEC SQL UPDATE WORKS
* SET HOURS = NULL END-EXEC
CALL "SUB25" USING SQLCODE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT SUM(HOURS),MAX(HOURS),MIN(HOURS)
* INTO :sum1:indic1,:max1:indic2,:min1:indic3
* FROM WORKS END-EXEC
CALL "SUB26" USING SQLCODE sum1 indic1 max1 indic2 min1
indic3
MOVE SQLCODE TO SQL-COD
MOVE indic1 TO DISP1
MOVE indic2 TO DISP2
MOVE indic3 TO DISP3
* EXEC SQL ROLLBACK WORK;
CALL "SUB27" USING SQLCODE
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " indic1 < 0"
DISPLAY " indic2 < 0"
DISPLAY " indic3 < 0"
DISPLAY " Your answer is :"
DISPLAY " indic1 = " , DISP1
DISPLAY " indic2 = " , DISP2
DISPLAY " indic3 = " , DISP3
if (indic1 < 0 AND indic2 < 0 AND indic3 < 0) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0273','pass','MCO') END-EXEC
CALL "SUB28" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0273','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB29" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB30" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0273 *******************
******************** BEGIN TEST0277 *******************
*Computation with NULL value specification
DISPLAY " Computation with NULL value spec. "
DISPLAY "Reference X3.135-1989 section 5.6 GR "
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0277 "
DISPLAY " Reference 5.6 General Rules )"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " UPDATE WORKS"
DISPLAY " SET HOURS = NULL WHERE EMPNUM = 'E1';"
DISPLAY " "
DISPLAY " UPDATE WORKS"
DISPLAY " SET HOURS = :count1:indic1 - "
DISPLAY " (:count2:indic2 + :count3:indic3)"
DISPLAY " WHERE EMPNUM = 'E2';"
DISPLAY " "
DISPLAY " UPDATE WORKS"
DISPLAY " SET HOURS = :count2:indic2 / :count3:indic3 * "
DISPLAY " :count1:indic1"
DISPLAY " WHERE EMPNUM = 'E3';"
DISPLAY " "
DISPLAY " UPDATE WORKS"
DISPLAY " SET HOURS = HOURS + 5;"
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count4"
DISPLAY " FROM WORKS"
DISPLAY " WHERE HOURS IS NULL; "
DISPLAY " "
MOVE -1 TO indic1
MOVE 0 TO indic2
MOVE 0 TO indic3
MOVE 11 TO count1
MOVE 3 TO count2
MOVE -17 TO count3
MOVE -1 TO count4
* EXEC SQL UPDATE WORKS
* SET HOURS = NULL WHERE EMPNUM = 'E1' END-EXEC
CALL "SUB31" USING SQLCODE
MOVE SQLCODE TO SQL-COD
* EXEC SQL UPDATE WORKS
* SET HOURS = :count1:indic1 - (:count2:indic2 +
* :count3:indic3)
* WHERE EMPNUM = 'E2' END-EXEC
CALL "SUB32" USING SQLCODE count1 indic1 count2 indic2 count3
indic3
MOVE SQLCODE TO SQL-COD
* EXEC SQL UPDATE WORKS
* SET HOURS = :count2:indic2 / :count3:indic3 *
* :count1:indic1
* WHERE EMPNUM = 'E3' END-EXEC
CALL "SUB33" USING SQLCODE count2 indic2 count3 indic3 count1
indic1
MOVE SQLCODE TO SQL-COD
* EXEC SQL UPDATE WORKS
* SET HOURS = HOURS + 5 END-EXEC
CALL "SUB34" USING SQLCODE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count4
* FROM WORKS
* WHERE HOURS IS NULL END-EXEC
CALL "SUB35" USING SQLCODE count4
MOVE SQLCODE TO SQL-COD
* EXEC SQL ROLLBACK WORK;
CALL "SUB36" USING SQLCODE
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " count4 = 9"
DISPLAY " Your answer is :"
DISPLAY " count4 = " , count4
if (count4 = 9) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0277','pass','MCO') END-EXEC
CALL "SUB37" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0277','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB38" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB39" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0277 *******************
******************** BEGIN TEST0278 *******************
*IN value list with USER, literal, variable spec.
DISPLAY "IN value list with USER, literal, variable"
DISPLAY "Reference X3.135-1989 section 5.6 GR "
DISPLAY " ------------------------------------------ "
DISPLAY " TEST0278 "
DISPLAY " Reference 5.6 General Rules )"
DISPLAY " - - - - - - - - - - - - - - - - - - - - - "
DISPLAY " "
DISPLAY " "
DISPLAY " UPDATE STAFF"
DISPLAY " SET EMPNAME = 'HU'"
DISPLAY " WHERE EMPNAME = 'Ed';"
DISPLAY " "
DISPLAY " SELECT COUNT(*) INTO :count1"
DISPLAY " FROM STAFF"
DISPLAY " WHERE EMPNAME IN "
DISPLAY "
- " (USER,:EMPNA1:indic1,:EMPNA2:indic2,:EMPNA3); "
DISPLAY " "
MOVE -1 TO indic1
MOVE 0 TO indic2
MOVE -1 TO count1
MOVE "Alice" TO EMPNA1
MOVE "Betty" TO EMPNA2
MOVE "Carmen" TO EMPNA3
* EXEC SQL UPDATE STAFF
* SET EMPNAME = 'HU'
* WHERE EMPNAME = 'Ed' END-EXEC
CALL "SUB40" USING SQLCODE
MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :count1
* FROM STAFF
* WHERE EMPNAME IN
* (USER,:EMPNA1:indic1,:EMPNA2:indic2,:EMPNA3) END-EXEC
CALL "SUB41" USING SQLCODE count1 EMPNA1 indic1 EMPNA2 indic2
EMPNA3
MOVE SQLCODE TO SQL-COD
DISPLAY "SQLCODE = " , SQL-COD
* EXEC SQL ROLLBACK WORK;
CALL "SUB42" USING SQLCODE
MOVE SQLCODE TO SQL-COD
DISPLAY " The correct answer is :"
DISPLAY " count1 = 3"
DISPLAY " Your answer is :"
DISPLAY " count1 = " , count1
if (count1 = 3) then
DISPLAY " *** pass *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0278','pass','MCO') END-EXEC
CALL "SUB43" USING SQLCODE
MOVE SQLCODE TO SQL-COD
else
DISPLAY " dml061.sco *** fail *** "
* EXEC SQL INSERT INTO TESTREPORT
* VALUES('0278','fail','MCO') END-EXEC
ADD 1 TO errcnt
CALL "SUB44" USING SQLCODE
MOVE SQLCODE TO SQL-COD
END-IF
DISPLAY "==============================================="
* EXEC SQL COMMIT WORK;
CALL "SUB45" USING SQLCODE
MOVE SQLCODE TO SQL-COD
******************** END TEST0278 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
STOP RUN .
* **** Procedures for PERFORM statements
Messung V0.5 in Prozent C=78 H=100 G=89
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-04-26)
¤
*© Formatika GbR, Deutschland