**************************************************************** * * 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 = ' ';"
EXECSQLDELETEFROM STAFF4 END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF4 (EMPNUM,GRADE)
VALUES ('E1',40) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF4 (EMPNUM,EMPNAME)
VALUES ('E2','HUFFMAN') END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECT EMPNAME INTO :ename FROM STAFF4
WHERE GRADE=0 END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECT GRADE INTO :egrd FROM STAFF4
WHERE (EMPNAME ISNULL) AND CITY = ' 'END-EXEC MOVE SQLCODE TO 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 MOVE SQLCODE TO SQL-COD DISPLAY" *** pass *** " else EXECSQLINSERTINTO TESTREPORT
VALUES('0300','fail','PCO') END-EXEC ADD 1 TO errcnt MOVE SQLCODE TO SQL-COD DISPLAY" cdr001.pco *** fail *** " END-IF DISPLAY"================================================"
DISPLAY" " EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO 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
EXECSQLDELETEFROM STAFF14 END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF14 (EMPNUM,GRADE)
VALUES ('E1',40) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECT EMPNAME INTO :ename FROM STAFF14
WHERE EMPNAME = 'SUN'END-EXEC MOVE SQLCODE TO 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 MOVE SQLCODE TO SQL-COD DISPLAY" *** pass *** " else EXECSQLINSERTINTO TESTREPORT
VALUES('0301','fail','PCO') END-EXEC ADD 1 TO errcnt MOVE SQLCODE TO SQL-COD DISPLAY" cdr001.pco *** fail *** " END-IF DISPLAY"================================================"
DISPLAY" " EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO 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
EXECSQLDELETEFROM STAFF16 END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF16 (EMPNUM,GRADE)
VALUES ('E1',150) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF16 (EMPNUM,GRADE)
VALUES ('E1',150) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECTCOUNT(*) INTO :count1 FROM STAFF16
WHERE EMPNAME ISNULLEND-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF16 (EMPNUM,EMPNAME,GRADE)
VALUES ('E2','Tom',100) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECT EMPNAME INTO :ename FROM STAFF16
WHERE EMPNUM = 'E2'END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF16 (EMPNUM,EMPNAME,GRADE)
VALUES ('E3','Bill',151) END-EXEC MOVE SQLCODE TO SQL-COD
MOVE SQLCODE TO code1
EXECSQLSELECT GRADE INTO :egrd FROM STAFF16
WHERE EMPNUM = 'E3'END-EXEC MOVE SQLCODE TO SQL-COD
DISPLAY"The correct result is :" DISPLAY" count1=1 " DISPLAY" ename = Tom " DISPLAY" egrd = 0" DISPLAY" code1 < 0 " DISPLAY"Your answer is :" DISPLAY" count1=", count1 " " DISPLAY" ename = ", ename " " DISPLAY" egrd = ", egrd " " DISPLAY" code1 = ", code1 " " if (count1 = 1 AND ename = "Tom"AND code1 < 0) then EXECSQLINSERTINTO TESTREPORT
VALUES('0377','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD DISPLAY" *** pass *** " else EXECSQLINSERTINTO TESTREPORT
VALUES('0377','fail','PCO') END-EXEC ADD 1 TO errcnt MOVE SQLCODE TO SQL-COD DISPLAY" cdr001.pco *** fail *** " END-IF DISPLAY"================================================"
DISPLAY" " EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD ********** END TEST0377 **************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
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.