**************************************************************** * * COMMENT SECTION * * DATE 1992/06/05 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. * * SDL029.PCO * WRITTEN BY: DAVID W. FLATER * * THIS ROUTINE TESTS THE SCHEMA DEFINITION LANGUAGE FOR SQL. * * REFERENCES * ANSI SQL-1989, ANSI SQL-1992 * 11.36 <grant statement> * ****************************************************************
MOVE"x"TO ct20 DISPLAY"SELECT CHARTEST INTO :ct20 FROM CUGINI.AA;" EXECSQLSELECT CHARTEST INTO :ct20 FROM CUGINI.AA END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"ct20 should be 'Twenty Characters...';its value is
- " ", ct20
if (ii NOT = 0 OR ct20 NOT = "Twenty Characters...") then MOVE 0 TO flag END-IF
DISPLAY"INSERT INTO CUGINI.AA VALUES ('This should not
- " work');" EXECSQLINSERTINTO CUGINI.AA
VALUES ('This should not work') 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 CUGINI.AA;" COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM CUGINI.AA END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"COUNT should be 1; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 1) then MOVE 0 TO flag END-IF
DISPLAY"UPDATE CUGINI.AA" DISPLAY" SET CHARTEST = 'This should not work';" EXECSQL UPDATE CUGINI.AA SET CHARTEST = 'This should not work'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 CUGINI.AA WHERE" DISPLAY"CHARTEST <> 'Twenty Characters...';" COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM CUGINI.AA WHERE CHARTEST
<> 'Twenty Characters...'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 CUGINI.AA;" EXECSQLDELETEFROM CUGINI.AA 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 CUGINI.AA;" COMPUTE tmpcnt = -1 EXECSQLSELECTCOUNT(*) INTO :tmpcnt FROM CUGINI.AA END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be 0; its value is ", ii DISPLAY"COUNT should be 1; its value is ", tmpcnt
if (ii NOT = 0 OR tmpcnt NOT = 1) 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('0458','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl029.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0458','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"INSERT INTO CUGINI.BB VALUES ('A');" EXECSQLINSERTINTO CUGINI.BB
VALUES ('A') 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 ct1 DISPLAY"SELECT CHARTEST INTO :ct1 FROM CUGINI.BB;" EXECSQLSELECT CHARTEST INTO :ct1 FROM CUGINI.BB END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii DISPLAY"ct1 should NOT be A; its value is ", ct1
if (ii NOT < 0 OR ct1 = "A") then MOVE 0 TO flag END-IF
DISPLAY"UPDATE CUGINI.BB SET CHARTEST = 'B';" EXECSQL UPDATE CUGINI.BB SET CHARTEST = 'B'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"DELETE FROM CUGINI.BB;" EXECSQLDELETEFROM CUGINI.BB 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0459','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl029.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0459','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"UPDATE CUGINI.CC" DISPLAY" SET CHARTEST = 'This --should-- work';" EXECSQL UPDATE CUGINI.CC SET CHARTEST = 'This --should-- work'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 CHARTEST INTO :ct20 FROM CUGINI.CC;" MOVE"x"TO ct20 EXECSQLSELECT CHARTEST INTO :ct20 FROM CUGINI.CC END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii DISPLAY "ct20 should NOT be 'This --should-- work';its value is ",
ct20
if (ii NOT < 0 OR ct20 = "This --should-- work") then MOVE 0 TO flag END-IF
DISPLAY"INSERT INTO CUGINI.CC VALUES ('This should not
- " work');" EXECSQLINSERTINTO CUGINI.CC
VALUES ('This should not work') 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"DELETE FROM CUGINI.CC;" EXECSQLDELETEFROM CUGINI.CC 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0460','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl029.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0460','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
DISPLAY"DELETE FROM CUGINI.DD;" EXECSQLDELETEFROM CUGINI.DD 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"INSERT INTO CUGINI.DD VALUES ('A');" EXECSQLINSERTINTO CUGINI.DD
VALUES ('A') 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 CHARTEST INTO :ct1 FROM CUGINI.DD;" MOVE"x"TO ct1 EXECSQLSELECT CHARTEST INTO :ct1 FROM CUGINI.DD END-EXEC MOVE SQLCODE TO SQL-COD MOVE SQLCODE TO ii DISPLAY"SQLCODE should be < 0; its value is ", ii DISPLAY"ct1 should NOT be 'a' or 'A'; its value is ", ct1
if (ii NOT < 0 OR ct1 = "a") then MOVE 0 TO flag END-IF if (ct1 = "A") then MOVE 0 TO flag END-IF
DISPLAY"UPDATE CUGINI.DD SET CHARTEST = 'B';" EXECSQL UPDATE CUGINI.DD SET CHARTEST = 'B'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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0461','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" sdl029.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0461','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF