* Standard COBOL (file "SDL032.SCO") calling SQL * procedures in file "SDL032.MCO". * STANDARD COBOL (file "SDL032.SCO")
**************************************************************** * * COMMENT SECTION * * DATE 1992/06/15 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. * * SDL032.SCO * WRITTEN BY: DAVID W. FLATER * * THIS ROUTINE TESTS THE SCHEMA DEFINITION LANGUAGE FOR SQL. * ****************************************************************
DISPLAY"SELECT EMPNU, EMPNAME, GRADE, CITY" DISPLAY" INTO :mpnm, :mpna, :grd, :cty" DISPLAY" FROM HU.STAFF3 WHERE EMPNUM = 'E1';" MOVE"x"TO mpnm MOVE"x"TO mpna MOVE 0 TO grd MOVE"x"TO cty * EXEC SQL SELECT EMPNUM, EMPNAME, GRADE, CITY * INTO :mpnm, :mpna, :grd, :cty * FROM HU.STAFF3 WHERE EMPNUM = 'E1'; CALL"SUB2"USING SQLCODE mpnm mpna grd cty MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"mpnm should be 'E1'; its value is ", mpnm DISPLAY"mpna should be 'Alice'; its value is ", mpna DISPLAY"grd should be 12; its value is ", grd DISPLAY"cty should be 'Deale'; its value is ", cty
if (ii NOT = 0 OR mpnm NOT = "E1") then MOVE 0 TO flag END-IF if (mpna NOT = "Alice"OR grd NOT = 12) then MOVE 0 TO flag END-IF if (cty NOT = "Deale") then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.STAFF3 SET EMPNUM = 'E0' WHERE EMPNUM =
- " 'E1';" * EXEC SQL UPDATE HU.STAFF3 * SET EMPNUM = 'E0' * WHERE EMPNUM = 'E1'; CALL"SUB3"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.STAFF3 SET EMPNAME = 'Larry'" DISPLAY" WHERE EMPNUM = 'E0';" * EXEC SQL UPDATE HU.STAFF3 * SET EMPNAME = 'Larry' * WHERE EMPNUM = 'E0'; CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.STAFF3 SET GRADE = 15;" * EXEC SQL UPDATE HU.STAFF3 * SET GRADE = 15; CALL"SUB5"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.STAFF3 SET CITY = 'Greenmount';" * EXEC SQL UPDATE HU.STAFF3 * SET CITY = 'Greenmount'; CALL"SUB6"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
DISPLAY"SELECT COUNT(*) FROM HU.STAFF3" DISPLAY"WHERE CITY = 'Greenmount' OR" DISPLAY"GRADE = 15;" COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt * FROM HU.STAFF3 WHERE CITY = 'Greenmount' * OR GRADE = 15; CALL"SUB7"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"COUNT should be 0; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"INSERT INTO HU.STAFF3 VALUES
- " ('E6','Mickey',12,'Nice');" DISPLAY"SELECT COUNT(*) FROM HU.STAFF3;" * EXEC SQL INSERT INTO HU.STAFF3 * VALUES ('E6','Mickey',12,'Nice'); CALL"SUB8"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.STAFF3 * ; CALL"SUB9"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD DISPLAY"COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then MOVE 0 TO flag END-IF
DISPLAY"DELETE FROM HU.STAFF3;" DISPLAY"SELECT COUNT(*) FROM HU.STAFF3;" * EXEC SQL DELETE FROM HU.STAFF3; CALL"SUB10"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.STAFF3 * ; CALL"SUB11"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD DISPLAY"COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then MOVE 0 TO flag END-IF
DISPLAY"SELECT EMPNU, EMPNAME, GRADE, CITY" DISPLAY" INTO :mpnm, :mpna, :grd, :cty" DISPLAY" FROM HU.VSTAFF3 WHERE EMPNUM = 'E1';" MOVE"x"TO mpnm MOVE"x"TO mpna MOVE 0 TO grd MOVE"x"TO cty * EXEC SQL SELECT EMPNUM, EMPNAME, GRADE, CITY * INTO :mpnm, :mpna, :grd, :cty * FROM HU.VSTAFF3 WHERE EMPNUM = 'E1'; CALL"SUB16"USING SQLCODE mpnm mpna grd cty MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"mpnm should be 'E1'; its value is ", mpnm DISPLAY"mpna should be 'Alice'; its value is ", mpna DISPLAY"grd should be 12; its value is ", grd DISPLAY"cty should be 'Deale'; its value is ", cty
if (ii NOT = 0 OR mpnm NOT = "E1") then MOVE 0 TO flag END-IF if (mpna NOT = "Alice"OR grd NOT = 12) then MOVE 0 TO flag END-IF if (cty NOT = "Deale") then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET EMPNUM = 'E0' WHERE EMPNUM =
- " 'E1';" * EXEC SQL UPDATE HU.VSTAFF3 * SET EMPNUM = 'E0' * WHERE EMPNUM = 'E1'; CALL"SUB17"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET EMPNAME = 'Larry'" DISPLAY" WHERE EMPNUM = 'E0';" * EXEC SQL UPDATE HU.VSTAFF3 * SET EMPNAME = 'Larry' * WHERE EMPNUM = 'E0'; CALL"SUB18"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET GRADE = 15;" * EXEC SQL UPDATE HU.VSTAFF3 * SET GRADE = 15; CALL"SUB19"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET CITY = 'Greenmount';" * EXEC SQL UPDATE HU.VSTAFF3 * SET CITY = 'Greenmount'; CALL"SUB20"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
DISPLAY"SELECT COUNT(*) FROM HU.VSTAFF3" DISPLAY"WHERE CITY = 'Greenmount' OR" DISPLAY"GRADE = 15;" COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt * FROM HU.VSTAFF3 WHERE CITY = 'Greenmount' * OR GRADE = 15; CALL"SUB21"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"COUNT should be 0; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"INSERT INTO HU.VSTAFF3 VALUES
- " ('E6','Mickey',12,'Nice');" DISPLAY"SELECT COUNT(*) FROM HU.VSTAFF3;" * EXEC SQL INSERT INTO HU.VSTAFF3 * VALUES ('E6','Mickey',12,'Nice'); CALL"SUB22"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 * ; CALL"SUB23"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD DISPLAY"COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then MOVE 0 TO flag END-IF
DISPLAY"DELETE FROM HU.VSTAFF3;" DISPLAY"SELECT COUNT(*) FROM HU.VSTAFF3;" * EXEC SQL DELETE FROM HU.VSTAFF3; CALL"SUB24"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 * ; CALL"SUB25"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be < 0, 0;its value is ", ii ", ",
SQL-COD DISPLAY"COUNT should be 5; its value is ", tmpcnt
if (ii NOT < 0 OR SQLCODE NOT = 0 OR tmpcnt NOT =
5) then MOVE 0 TO flag END-IF
DISPLAY"DECLARE BRAD CURSOR FOR" DISPLAY"SELECT EMPNUM, EMPNAME, GRADE, CITY" DISPLAY"FROM HU.VSTAFF3 WHERE EMPNUM = 'E1';" * EXEC SQL DECLARE BRAD CURSOR FOR * SELECT EMPNUM, EMPNAME, GRADE, CITY * FROM HU.VSTAFF3 WHERE EMPNUM = 'E1' END-EXEC
DISPLAY"OPEN BRAD;" * EXEC SQL OPEN BRAD; CALL"SUB30"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
MOVE"x"TO mpnm MOVE"x"TO mpna MOVE 0 TO grd MOVE"x"TO cty DISPLAY"FETCH BRAD INTO :mpnm, :mpna, :grd, :cty;" * EXEC SQL FETCH BRAD INTO :mpnm, :mpna, :grd, :cty; CALL"SUB31"USING SQLCODE mpnm mpna grd cty MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"mpnm should be 'E1'; its value is ", mpnm DISPLAY"mpna should be 'Alice'; its value is ", mpna DISPLAY"grd should be 12; its value is ", grd DISPLAY"cty should be 'Deale'; its value is ", cty
if (ii NOT = 0) then MOVE 0 TO flag END-IF if (mpnm NOT = "E1") then MOVE 0 TO flag END-IF if (mpna NOT = "Alice"OR grd NOT = 12) then MOVE 0 TO flag END-IF if (cty NOT = "Deale") then MOVE 0 TO flag END-IF
DISPLAY"CLOSE BRAD;" * EXEC SQL CLOSE BRAD; CALL"SUB32"USING SQLCODE MOVE SQLCODE TO SQL-COD
DISPLAY"DECLARE MAGENTA CURSOR FOR" DISPLAY"SELECT EMPNUM, EMPNAME FROM HU.VSTAFF3;" * EXEC SQL DECLARE MAGENTA CURSOR FOR * SELECT EMPNUM, EMPNAME * FROM HU.VSTAFF3 END-EXEC *Magenta Declaration *Do not delete these comments--TED uses them
DISPLAY"OPEN MAGENTA;" * EXEC SQL OPEN MAGENTA; CALL"SUB33"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"FETCH MAGENTA INTO :mpnm, :mpna;" * EXEC SQL FETCH MAGENTA INTO :mpnm, :mpna; CALL"SUB34"USING SQLCODE mpnm mpna MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET EMPNUM = 'E0'" DISPLAY"WHERE CURRENT OF MAGENTA;" * EXEC SQL UPDATE HU.VSTAFF3 * SET EMPNUM = 'E0' WHERE CURRENT OF MAGENTA; CALL"SUB35"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET EMPNAME = 'Janet'" DISPLAY"WHERE CURRENT OF MAGENTA;" * EXEC SQL UPDATE HU.VSTAFF3 * SET EMPNAME = 'Janet' * WHERE CURRENT OF MAGENTA; CALL"SUB36"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii
if (ii NOT = 0) then MOVE 0 TO flag END-IF
*Do Not Delete This 001 DISPLAY"UPDATE HU.VSTAFF3 SET GRADE = 15" DISPLAY"WHERE CURRENT OF MAGENTA;" * EXEC SQL UPDATE HU.VSTAFF3 * SET GRADE = 15 * WHERE CURRENT OF MAGENTA; CALL"SUB37"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE HU.VSTAFF3 SET CITY = 'Denton'" DISPLAY"WHERE CURRENT OF MAGENTA;" * EXEC SQL UPDATE HU.VSTAFF3 * SET CITY = 'Denton' * WHERE CURRENT OF MAGENTA; CALL"SUB38"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
DISPLAY"SELECT COUNT(*) FROM HU.VSTAFF3" DISPLAY"WHERE CITY = 'Denton' OR" DISPLAY"GRADE = 15;" COMPUTE tmpcnt = -1 * EXEC SQL SELECT COUNT(*) INTO :tmpcnt * FROM HU.VSTAFF3 WHERE CITY = 'Denton' * OR GRADE = 15; CALL"SUB39"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"COUNT should be 0; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 0) then MOVE 0 TO flag END-IF
DISPLAY"DELETE FROM HU.VSTAFF3 WHERE CURRENT OF MAGENTA;" * EXEC SQL DELETE FROM HU.VSTAFF3 * WHERE CURRENT OF MAGENTA; CALL"SUB40"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii
if (ii NOT < 0) then MOVE 0 TO flag END-IF
*Do Not Delete This 002 DISPLAY"CLOSE MAGENTA;" * EXEC SQL CLOSE MAGENTA; CALL"SUB41"USING SQLCODE MOVE SQLCODE TO SQL-COD
COMPUTE tmpcnt = -1 DISPLAY"SELECT COUNT(*) FROM HU.VSTAFF3;" * EXEC SQL SELECT COUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 * ; CALL"SUB42"USING SQLCODE tmpcnt MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"COUNT should be 5; its value is ", tmpcnt
if (ii NOT = 0) then MOVE 0 TO flag END-IF if (tmpcnt NOT = 5) then MOVE 0 TO flag END-IF
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.