* 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. * * DML020.SCO * WRITTEN BY: HU YANPING * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE JOIN QUERY FUNCTIONS IN SQL. * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 5.20 <from clause> * ****************************************************************
* EXEC SQL DECLARE SNP1 CURSOR FOR * SELECT EMPNUM,EMPNAME,GRADE,STAFF.CITY, PNAME, PROJ.CITY * FROM STAFF, PROJ * WHERE STAFF.CITY = PROJ.CITY END-EXEC * EXEC SQL OPEN SNP1; CALL"SUB1"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"EMPNUM GRADE STAFF.CITY PROJ.CITY " END-IF MOVE 1 TO ii PERFORM P50 UNTIL ii > 19 * EXEC SQL CLOSE SNP1; CALL"SUB2"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" i should be 10, i = ", i
if (i = 10) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0080','pass','MCO') END-EXEC CALL"SUB3"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml020.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0080','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB4"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF
* EXEC SQL DECLARE SNP3 CURSOR FOR * SELECT EMPNUM,EMPNAME,GRADE,STAFF.CITY,PNUM,PNAME, * PTYPE,BUDGET,PROJ.CITY * FROM STAFF, PROJ * WHERE STAFF.CITY = PROJ.CITY * AND GRADE <> 12 END-EXEC * EXEC SQL OPEN SNP3; CALL"SUB6"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i MOVE 1 TO ii PERFORM P49 UNTIL ii > 19 * EXEC SQL CLOSE SNP3; CALL"SUB7"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" i should be 4, i = ", i
if (i = 4) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0081','pass','MCO') END-EXEC CALL"SUB8"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml020.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0081','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB9"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF
* EXEC SQL DECLARE SNP5 CURSOR FOR * SELECT DISTINCT STAFF.CITY, PROJ.CITY * FROM STAFF, WORKS, PROJ * WHERE STAFF.EMPNUM = WORKS.EMPNUM * AND WORKS.PNUM = PROJ.PNUM END-EXEC * EXEC SQL OPEN SNP5; CALL"SUB11"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"STAFF.CITY PROJ.CITY " END-IF MOVE 1 TO ii PERFORM P48 UNTIL ii > 19 * EXEC SQL CLOSE SNP5; CALL"SUB12"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" i should be 5, i = ", i
if (i = 5) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0082','pass','MCO') END-EXEC CALL"SUB13"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml020.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0082','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB14"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF
* EXEC SQL DECLARE SNP6 CURSOR FOR * SELECT FIRST1.EMPNUM, SECOND2.EMPNUM * FROM STAFF FIRST1, STAFF SECOND2 * WHERE FIRST1.CITY = SECOND2.CITY * AND FIRST1.EMPNUM < SECOND2.EMPNUM END-EXEC * EXEC SQL OPEN SNP6; CALL"SUB16"USINGSQLCODE MOVESQLCODETO SQL-COD MOVE 0 TO i if (SQLCODE = 0) then DISPLAY"FIRST1.EMPNUM SECOND2.EMPNUM " END-IF MOVE 1 TO ii PERFORM P47 UNTIL ii > 19 * EXEC SQL CLOSE SNP6; CALL"SUB17"USINGSQLCODE MOVESQLCODETO SQL-COD
DISPLAY" i should be 2, i = ", i
if (i = 2) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0083','pass','MCO') END-EXEC CALL"SUB18"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml020.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0083','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB19"USINGSQLCODE MOVESQLCODETO SQL-COD 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.