* Standard COBOL (file "DML024.SCO") calling SQL * procedures in file "DML024.MCO"
**************************************************************** * * COMMENT SECTION * * DATE 1987/08/21 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. * * DML024.SCO * WRITTEN BY: HU YANPING * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE SEARCH CONDITIONS FOR SQL. * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 5.18 <search condition> * ****************************************************************
MOVE"HU"TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx CALL"AUTHCK"USINGSQLCODE uidx MOVESQLCODETO SQL-COD 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, Module COBOL, dml024.sco" 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 TEST0108 *******************
DISPLAY" TEST0108" DISPLAY" Reference ANSI X3.135-1989 5.18 <search condition>
- " GR" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY"*** Select all from a table " DISPLAY"*** SELECT EMPNUM, CITY " DISPLAY"*** FROM STAFF " DISPLAY"*** WHERE EMPNUM='E1' OR NOT(EMPNUM='E1') "
* EXEC SQL DECLARE S1 CURSOR FOR * SELECT EMPNUM,CITY * FROM STAFF * WHERE EMPNUM='E1' OR NOT(EMPNUM='E1') END-EXEC * EXEC SQL OPEN S1; CALL"SUB1"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM CITY " END-IF
MOVE 1 TO ii PERFORM P50 UNTIL ii > 19 * EXEC SQL CLOSE S1; CALL"SUB2"USINGSQLCODE MOVESQLCODETO SQL-COD
if ( i = 5) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0108','pass','MCO') END-EXEC CALL"SUB3"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml024.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0108','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB4"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF
******************** END TEST0108 ******************* ******************** BEGIN TEST0109 *******************
DISPLAY" TEST0109" DISPLAY" Reference ANSI X3.135-1989 5.18 <search condition>
- " GR" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY"*** Select nothing from a table " DISPLAY"*** SELECT EMPNUM, CITY " DISPLAY"*** FROM STAFF " DISPLAY"*** WHERE EMPNUM='E1' AND NOT(EMPNUM='E1') "
* EXEC SQL DECLARE S2 CURSOR FOR * SELECT EMPNUM,CITY * FROM STAFF * WHERE EMPNUM='E1' AND NOT(EMPNUM='E1') END-EXEC * EXEC SQL OPEN S2; CALL"SUB6"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM CITY" END-IF
MOVE 1 TO ii PERFORM P49 UNTIL ii > 19 * EXEC SQL CLOSE S2; CALL"SUB7"USINGSQLCODE MOVESQLCODETO SQL-COD
if ( i = 0) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0109','pass','MCO') END-EXEC CALL"SUB8"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml024.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0109','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB9"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF
******************** END TEST0109 ******************* ******************** BEGIN TEST0110 *******************
DISPLAY" TEST0110" DISPLAY" Reference ANSI X3.135-1989 5.18 <search condition>
- " GR" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY"*** unknown OR NOT(unknown) " DISPLAY"*** INSERT INTO WORKS " DISPLAY"*** VALUES ('E8','P8',NULL) " DISPLAY"*** SELECT EMPNUM,PNUM " DISPLAY"*** FROM WORKS " DISPLAY"*** WHERE HOURS < (SELECT HOURS FROM WORKS " DISPLAY"*** WHERE EMPNUM = 'E8') " DISPLAY"*** OR NOT(HOURS < (SELECT HOURS FROM WORKS " DISPLAY"*** WHERE EMPNUM = 'E8') "
* EXEC SQL INSERT INTO WORKS * VALUES('E8','P8',NULL) END-EXEC CALL"SUB11"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL DECLARE S3 CURSOR FOR * SELECT EMPNUM,PNUM * FROM WORKS * WHERE HOURS < (SELECT HOURS FROM WORKS * WHERE EMPNUM = 'E8') * OR NOT(HOURS< (SELECT HOURS FROM WORKS * WHERE EMPNUM = 'E8')) END-EXEC * EXEC SQL OPEN S3; CALL"SUB12"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM PNUM" END-IF
******************** END TEST0110 ******************* ******************** BEGIN TEST0111 *******************
DISPLAY" TEST0111" DISPLAY" Reference ANSI X3.135-1989 5.18 <search condition>
- " GR" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY"*** unknown AND NOT(unknown) " DISPLAY"*** SELECT EMPNUM,PNUM " DISPLAY"*** FROM WORKS " DISPLAY"*** WHERE HOURS < (SELECT HOURS FROM WORKS " DISPLAY"*** WHERE EMPNUM = 'E8') " DISPLAY"*** AND NOT(HOURS < (SELECT HOURS FROM WORKS " DISPLAY"*** WHERE EMPNUM = 'E8') "
* EXEC SQL INSERT INTO WORKS * VALUES('E8','P8',NULL) END-EXEC CALL"SUB17"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL DECLARE S4 CURSOR FOR * SELECT EMPNUM,PNUM * FROM WORKS * WHERE HOURS < (SELECT HOURS FROM WORKS * WHERE EMPNUM = 'E8') * AND NOT(HOURS< (SELECT HOURS FROM WORKS * WHERE EMPNUM = 'E8')) END-EXEC * EXEC SQL OPEN S4; CALL"SUB18"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM PNUM" END-IF
******************** END TEST0111 ******************* ******************** BEGIN TEST0112 *******************
DISPLAY" TEST0112" DISPLAY" Reference ANSI X3.135-1989 5.18 <search condition>
- " GR" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY"*** unknown AND true " DISPLAY"*** SELECT EMPNUM,PNUM " DISPLAY"*** FROM WORKS " DISPLAY"*** WHERE HOURS < (SELECT HOURS FROM WORKS " DISPLAY"*** WHERE EMPNUM = 'E8') " DISPLAY"*** AND HOURS IN (SELECT HOURS FROM WORKS) "
* EXEC SQL INSERT INTO WORKS * VALUES('E8','P8',NULL) END-EXEC CALL"SUB23"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL DECLARE S5 CURSOR FOR * SELECT EMPNUM,PNUM * FROM WORKS * WHERE HOURS < (SELECT HOURS FROM WORKS * WHERE EMPNUM = 'E8') * AND HOURS IN (SELECT HOURS FROM WORKS) END-EXEC * EXEC SQL OPEN S5; CALL"SUB24"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM PNUM" END-IF
******************** END TEST0112 ******************* ******************** BEGIN TEST0113 *******************
DISPLAY" TEST0113" DISPLAY" Reference ANSI X3.135-1989 5.18 <search condition>
- " GR" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY"*** unknown OR true " DISPLAY"*** SELECT EMPNUM,PNUM " DISPLAY"*** FROM WORKS " DISPLAY"*** WHERE HOURS < (SELECT HOURS FROM WORKS " DISPLAY"*** WHERE EMPNUM = 'E8') " DISPLAY"*** OR HOURS IN (SELECT HOURS FROM WORKS) "
* EXEC SQL INSERT INTO WORKS * VALUES('E8','P8',NULL) END-EXEC CALL"SUB29"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL DECLARE S6 CURSOR FOR * SELECT EMPNUM,PNUM * FROM WORKS * WHERE HOURS < (SELECT HOURS FROM WORKS * WHERE EMPNUM = 'E8') * OR HOURS IN (SELECT HOURS FROM WORKS) END-EXEC * EXEC SQL OPEN S6; CALL"SUB30"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM PNUM" 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 und die Messung sind noch experimentell.