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
¤ Dauer der Verarbeitung: 0.25 Sekunden
(vorverarbeitet)
¤
|
Haftungshinweis
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.
|