**************************************************************** * * COMMENT SECTION * * DATE 1989/04/07 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. * * CDR001.PCO * WRITTEN BY: SUN DAJUN * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE <DEFAULT CLAUSE> IN COLUMN DEFINI- * TION. * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * with Integrity Enhancement * * SECTION 6.3 * <column definition>::= * <column name><data type> * (<default clause>) * (<column constrait>...) * SECTION 6.4 * <default clause>::= * DEFAULT {<literal>|USER|NULL} * ****************************************************************
MOVE"SUN"TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx EXECSQLSELECT
USER INTO :uidx FROM SUN.ECCO END-EXEC if (uid NOT = uidx) then DISPLAY"ERROR: User " uid " expected." DISPLAY"User " uidx " connected." DISPLAY" " STOPRUN END-IF
MOVE 0 TO errcnt DISPLAY "SQL Test Suite, V6.0, Embedded COBOL, cdr001.pco" DISPLAY" " DISPLAY "59-byte ID" DISPLAY"TEd Version #" DISPLAY" " * date_time print * ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME FROMTIME DISPLAY"Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME ******************** BEGIN TEST0300 ******************* *This program tests if the default values of a column in *table can be properly set. The default value of column *EMPNAME is NULL, GRADE 0, CITY ' '
DISPLAY" TEST0300 " DISPLAY" DEFAULT CLAUSE " DISPLAY" SQL with Integrity Enhancement section
- " 6.3,6.4" DISPLAY" - - - - - - - - - - - - - - - - - - - - - " DISPLAY" INSERT INTO STAFF4 (EMPNUM,GRADE)" DISPLAY" VALUES ('E1',40);" DISPLAY" " DISPLAY" INSERT INTO STAFF4 (EMPNUM,EMPNAME)" DISPLAY" VALUES ('E2','HUFFMAN');" DISPLAY" " DISPLAY" SELECT EMPNAME INTO :ename FROM STAFF4" DISPLAY" WHERE GRADE=0;" DISPLAY" " DISPLAY" SELECT GRADE INTO :egrd FROM STAFF4" DISPLAY" WHERE (EMPNAME IS NULL)" DISPLAY" AND CITY = ' ';"
EXECSQLSELECT EMPNAME INTO :ename FROM STAFF4 WHERE GRADE=0 END-EXEC MOVESQLCODETO SQL-COD
EXECSQLSELECT GRADE INTO :egrd FROM STAFF4 WHERE (EMPNAME ISNULL) AND CITY = ' 'END-EXEC MOVESQLCODETO SQL-COD DISPLAY"The correct result is :" DISPLAY" EMPNUM=HUFFMAN GRADE=40 " DISPLAY"Your answer is :" DISPLAY" EMPNUM=", ename " GRADE=", egrd " " if ( (ename = "HUFFMAN") AND (egrd = 40)) then EXECSQLINSERTINTO TESTREPORT
VALUES('0300','pass','PCO') END-EXEC MOVESQLCODETO SQL-COD DISPLAY" *** pass *** " else EXECSQLINSERTINTO TESTREPORT
VALUES('0300','fail','PCO') END-EXEC ADD 1 TO errcnt MOVESQLCODETO SQL-COD DISPLAY" cdr001.pco *** fail *** " END-IF DISPLAY"================================================"
DISPLAY" " EXECSQLCOMMIT WORK END-EXEC MOVESQLCODETO SQL-COD ********** END TEST0300 **************
******************** BEGIN TEST0301 ******************* *This program tests if the default values of a column in *table are properly set.General rule 1.c
EXECSQLSELECT EMPNAME INTO :ename FROM STAFF14 WHERE EMPNAME = 'SUN'END-EXEC MOVESQLCODETO SQL-COD
DISPLAY"The correct result is :" DISPLAY" EMPNUM=SUN " DISPLAY"Your answer is :" DISPLAY" EMPNUM=", ename " " if ( (ename = "SUN")) then EXECSQLINSERTINTO TESTREPORT
VALUES('0301','pass','PCO') END-EXEC MOVESQLCODETO SQL-COD DISPLAY" *** pass *** " else EXECSQLINSERTINTO TESTREPORT
VALUES('0301','fail','PCO') END-EXEC ADD 1 TO errcnt MOVESQLCODETO SQL-COD DISPLAY" cdr001.pco *** fail *** " END-IF DISPLAY"================================================"
DISPLAY" " EXECSQLCOMMIT WORK END-EXEC MOVESQLCODETO SQL-COD ********** END TEST0301 **************
******************** BEGIN TEST0377 ******************* *This program tests if the default values of a column in *table are properly set.General rule 1.c
DISPLAY" TEST0377 " DISPLAY" DEFAULT CLAUSE " DISPLAY" SQL with Integrity Enhancement section
- " 6.3,6.4" DISPLAY" - - - - - - - - - - - - - - - - - - - - - " DISPLAY" " DISPLAY" INSERT INTO STAFF16 (EMPNUM,GRADE)" DISPLAY" VALUES ('E1',150);" DISPLAY" " DISPLAY" INSERT INTO STAFF16 (EMPNUM,GRADE)" DISPLAY" VALUES ('E1',150);" DISPLAY" " DISPLAY" SELECT COUNT(*) INTO :count1 FROM STAFF16" DISPLAY" WHERE EMPNAME IS NULL;" DISPLAY" " DISPLAY" INSERT INTO STAFF16 (EMPNUM,EMPNAME,GRADE)" DISPLAY" VALUES ('E2','Tom',100);" DISPLAY" " DISPLAY" SELECT EMPNAME INTO :ename FROM STAFF16" DISPLAY" WHERE EMPNUM = 'E2';" DISPLAY" " DISPLAY" INSERT INTO STAFF16 (EMPNUM,EMPNAME,GRADE)" DISPLAY" VALUES ('E3','Bill',151);" DISPLAY" " DISPLAY" SELECT GRADE INTO :egrd FROM STAFF16" DISPLAY" WHERE EMPNUM = 'E3';" DISPLAY" " COMPUTE count1 = -1 MOVE 0 TO egrd
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 und die Messung sind noch experimentell.