**************************************************************** * * COMMENT SECTION * * DATE 1992/06/15 EMBEDDED 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.PCO * 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 EXECSQLSELECT EMPNUM, EMPNAME, GRADE, CITY INTO :mpnm, :mpna, :grd, :cty FROM HU.STAFF3 WHERE EMPNUM = 'E1'END-EXEC 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';" EXECSQL UPDATE HU.STAFF3 SET EMPNUM = 'E0'
WHERE EMPNUM = 'E1'END-EXEC 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';" EXECSQL UPDATE HU.STAFF3 SET EMPNAME = 'Larry'
WHERE EMPNUM = 'E0'END-EXEC 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;" EXECSQL UPDATE HU.STAFF3 SET GRADE = 15 END-EXEC 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';" EXECSQL UPDATE HU.STAFF3 SET CITY = 'Greenmount'END-EXEC 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 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.STAFF3 WHERE CITY = 'Greenmount' OR GRADE = 15 END-EXEC 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;" EXECSQLINSERTINTO HU.STAFF3
VALUES ('E6','Mickey',12,'Nice') END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.STAFF3 END-EXEC 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;" EXECSQLDELETEFROM HU.STAFF3 END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.STAFF3 END-EXEC 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0472','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl032.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0472','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 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 EXECSQLSELECT EMPNUM, EMPNAME, GRADE, CITY INTO :mpnm, :mpna, :grd, :cty FROM HU.VSTAFF3 WHERE EMPNUM = 'E1'END-EXEC 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';" EXECSQL UPDATE HU.VSTAFF3 SET EMPNUM = 'E0'
WHERE EMPNUM = 'E1'END-EXEC 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';" EXECSQL UPDATE HU.VSTAFF3 SET EMPNAME = 'Larry'
WHERE EMPNUM = 'E0'END-EXEC 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;" EXECSQL UPDATE HU.VSTAFF3 SET GRADE = 15 END-EXEC 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';" EXECSQL UPDATE HU.VSTAFF3 SET CITY = 'Greenmount'END-EXEC 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 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 WHERE CITY = 'Greenmount' OR GRADE = 15 END-EXEC 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;" EXECSQLINSERTINTO HU.VSTAFF3
VALUES ('E6','Mickey',12,'Nice') END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 END-EXEC 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;" EXECSQLDELETEFROM HU.VSTAFF3 END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 END-EXEC 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0484','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl032.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0484','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"DECLARE BRAD CURSOR FOR" DISPLAY"SELECT EMPNUM, EMPNAME, GRADE, CITY" DISPLAY"FROM HU.VSTAFF3 WHERE EMPNUM = 'E1';" EXECSQL DECLARE BRAD CURSOR FOR SELECT EMPNUM, EMPNAME, GRADE, CITY FROM HU.VSTAFF3 WHERE EMPNUM = 'E1'END-EXEC
DISPLAY"OPEN BRAD;" EXECSQLOPEN BRAD END-EXEC 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;" EXECSQL FETCH BRAD INTO :mpnm, :mpna, :grd, :cty END-EXEC 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;" EXECSQLCLOSE BRAD END-EXEC MOVE SQLCODE TO SQL-COD
DISPLAY"DECLARE MAGENTA CURSOR FOR" DISPLAY"SELECT EMPNUM, EMPNAME FROM HU.VSTAFF3;" EXECSQL 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;" EXECSQLOPEN MAGENTA END-EXEC 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;" EXECSQL FETCH MAGENTA INTO :mpnm, :mpna END-EXEC 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;" EXECSQL UPDATE HU.VSTAFF3 SET EMPNUM = 'E0' WHERE CURRENT OF MAGENTA END-EXEC 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;" EXECSQL UPDATE HU.VSTAFF3 SET EMPNAME = 'Janet'
WHERE CURRENT OF MAGENTA END-EXEC 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;" EXECSQL UPDATE HU.VSTAFF3 SET GRADE = 15
WHERE CURRENT OF MAGENTA END-EXEC 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;" EXECSQL UPDATE HU.VSTAFF3 SET CITY = 'Denton'
WHERE CURRENT OF MAGENTA END-EXEC 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 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 WHERE CITY = 'Denton' OR GRADE = 15 END-EXEC 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;" EXECSQLDELETEFROM HU.VSTAFF3
WHERE CURRENT OF MAGENTA END-EXEC 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;" EXECSQLCLOSE MAGENTA END-EXEC MOVE SQLCODE TO SQL-COD
COMPUTE tmpcnt = -1 DISPLAY"SELECT COUNT(*) FROM HU.VSTAFF3;" EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM HU.VSTAFF3 END-EXEC 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0485','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl032.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0485','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 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.