* Embedded SQL COBOL ("DML070.PCO") translated from * Embedded C on Wed Jan 16 10:18:37 1991.
**************************************************************** * * COMMENT SECTION * * DATE 1990/11/28 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. * * DML070.PCO * WRITTEN BY: SUN DAJUN * * THIS ROUTINE TESTS SET OPERATIONS. * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * ****************************************************************
MOVE"HU"TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx EXECSQLSELECT
USER INTO :uidx FROM HU.ECCO END-EXEC if (uid NOT = uidx) then DISPLAY"ERROR: User " uid " expected." DISPLAY"User " uidx " connected." DISPLAY" " STOPRUN END-IF
MOVE0TO errcnt DISPLAY "SQL Test Suite, V6.0, Embedded COBOL, dml070.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 TEST0409 *******************
EXECSQL DECLARE FISH CURSOR FOR SELECT'ZZ', EMPNUM, EMPNAME, -99 FROM STAFF WHERENOT EXISTS (SELECT * FROM WORKS WHERE WORKS.EMPNUM = STAFF.EMPNUM) ORDERBY EMPNUM END-EXEC
EXECSQLOPEN FISH END-EXEC MOVESQLCODETO SQL-COD EXECSQL FETCH FISH INTO :PNUM1,
:EMPNO1, :EMPNA1, :HOURS1 END-EXEC MOVESQLCODETO SQL-COD if (SQLCODENOT = 0) then MOVE0TO flag END-IF DISPLAY" ", PNUM1 ", ", EMPNO1 ", ", EMPNA1 ",
- " ", HOURS1 if (EMPNO1 NOT = "E5"OR EMPNA1 NOT = "Ed") then MOVE0TO flag END-IF if (PNUM1 NOT = "ZZ"OR HOURS1 NOT = -99) then MOVE0TO flag END-IF
EXECSQL FETCH FISH INTO :PNUM1,
:EMPNO1, :EMPNA1, :HOURS1 END-EXEC MOVESQLCODETO SQL-COD if (SQLCODENOT = 0) then MOVE0TO flag END-IF DISPLAY" ", PNUM1 ", ", EMPNO1 ", ", EMPNA1 ",
- " ", HOURS1 if (EMPNO1 NOT = "E6"OR EMPNA1 NOT = "Lendle") then MOVE0TO flag END-IF if (PNUM1 NOT = "ZZ"OR HOURS1 NOT = -99) then MOVE0TO flag END-IF
EXECSQL FETCH FISH INTO :PNUM1,
:EMPNO1, :EMPNA1, :HOURS1 END-EXEC MOVESQLCODETO SQL-COD if (SQLCODE = 0) then MOVE0TO flag END-IF
EXECSQLCLOSE FISH END-EXEC MOVESQLCODETO SQL-COD
EXECSQLROLLBACK WORK END-EXEC MOVESQLCODETO SQL-COD
******************** END TEST0409 *******************
******************** BEGIN TEST0411 *******************
DISPLAY" TEST0411 " DISPLAY" Effective set difference" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY" " DISPLAY"select all staff who joined project P2 and did not
- " join P1." DISPLAY" SELECT EMPNUM FROM WORKS" DISPLAY" WHERE PNUM = 'P2';" DISPLAY" **** DIFFER ****" DISPLAY" SELECT EMPNUM FROM WORKS" DISPLAY" WHERE PNUM = 'P1';" DISPLAY" " DISPLAY" " MOVE0TO HOURS1 MOVE"NV"TO EMPNO1
EXECSQL DECLARE SMURF CURSOR FOR SELECT W1.EMPNUM FROM WORKS W1 WHERE W1.PNUM = 'P2' ANDNOT EXISTS (SELECT * FROM WORKS W2 WHERE W2.EMPNUM = W1.EMPNUM AND W2.PNUM = 'P1') ORDERBY1 ASC END-EXEC
MOVE0TO flag DISPLAY"The correct result is :" DISPLAY" E3" DISPLAY" E4" DISPLAY" code1 <> 0" DISPLAY"Your answer is :" EXECSQLOPEN SMURF END-EXEC MOVESQLCODETO SQL-COD
EXECSQL FETCH SMURF INTO :EMPNO1 END-EXEC MOVESQLCODETO SQL-COD DISPLAY" ", EMPNO1 " " if (EMPNO1 NOT = "E3") then MOVE1TO flag END-IF EXECSQL FETCH SMURF INTO :EMPNO1 END-EXEC MOVESQLCODETO SQL-COD DISPLAY" ", EMPNO1 if (EMPNO1 NOT = "E4") then MOVE1TO flag END-IF EXECSQL FETCH SMURF INTO :EMPNO1 END-EXEC MOVESQLCODETO SQL-COD MOVESQLCODETO code1 DISPLAY" ", code1 EXECSQLCLOSE SMURF END-EXEC MOVESQLCODETO SQL-COD
******************** END TEST0411 *******************
******************** BEGIN TEST0412 *******************
DISPLAY" TEST0412 " DISPLAY" Effective set intersection" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY" " DISPLAY"select all staff who joined both project P2 and
- " P1." DISPLAY" SELECT EMPNUM FROM WORKS" DISPLAY" WHERE PNUM = 'P2';" DISPLAY" **** INTERSECT *****" DISPLAY" SELECT EMPNUM FROM WORKS" DISPLAY" WHERE PNUM = 'P1';" DISPLAY" " DISPLAY" " MOVE0TO HOURS1 MOVE"NV"TO EMPNO1
EXECSQL DECLARE BULL CURSOR FOR SELECT W1.EMPNUM FROM WORKS W1 WHERE W1.PNUM = 'P2' AND EXISTS (SELECT * FROM WORKS W2 WHERE W1.EMPNUM = W2.EMPNUM AND W2.PNUM = 'P1') ORDERBY EMPNUM ASC END-EXEC
DISPLAY"The correct result is :" DISPLAY" E1" DISPLAY" E2" DISPLAY" code1 <> 0 " DISPLAY"Your answer is :" EXECSQLOPEN BULL END-EXEC MOVESQLCODETO SQL-COD
EXECSQL FETCH BULL INTO :EMPNO1 END-EXEC MOVESQLCODETO SQL-COD DISPLAY" ", EMPNO1 if (EMPNO1 NOT = "E1") then MOVE1TO flag END-IF EXECSQL FETCH BULL INTO :EMPNO1 END-EXEC MOVESQLCODETO SQL-COD DISPLAY" ", EMPNO1 if (EMPNO1 NOT = "E2") then MOVE1TO flag END-IF EXECSQL FETCH BULL INTO :EMPNO1 END-EXEC MOVESQLCODETO SQL-COD MOVESQLCODETO code1 DISPLAY" ", code1
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.