* 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
******************** END TEST0083 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
P50. * EXEC SQL FETCH SNP1 INTO * :EMPNO1,:EMPNA1,:GRADE1,:SCITY,:PNAME1,:PCITY END-EXEC CALL"SUB21"USINGSQLCODE EMPNO1 EMPNA1 GRADE1 SCITY
PNAME1 PCITY MOVESQLCODETO SQL-COD if (SQLCODE = 0) then COMPUTE i = i + 1 DISPLAY EMPNO1 " ", GRADE1 " ", SCITY " ", PCITY END-IF ADD 1 TO ii
.
P49. * EXEC SQL FETCH SNP3 INTO * :EMPNO1,:EMPNA1,:GRADE1,:SCITY,:PPNUM, * :PNAME1,:PTYPE,:BUGET1,:PCITY END-EXEC CALL"SUB22"USINGSQLCODE EMPNO1 EMPNA1 GRADE1 SCITY PPNUM
PNAME1 PTYPE BUGET1 PCITY MOVESQLCODETO SQL-COD if (SQLCODE = 0) then COMPUTE i = i + 1 DISPLAY"STAFF.CITY=", SCITY " PROJ.CITY=", PCITY "
- " GRADE1=", GRADE1 END-IF ADD 1 TO ii
.
P48. * EXEC SQL FETCH SNP5 INTO * :SCITY,:PCITY END-EXEC CALL"SUB23"USINGSQLCODE SCITY PCITY MOVESQLCODETO SQL-COD if (SQLCODE = 0) then COMPUTE i = i + 1 DISPLAY SCITY " ", PCITY END-IF ADD 1 TO ii
.
P47. * EXEC SQL FETCH SNP6 INTO * :EMPNO1,:PPNUM END-EXEC CALL"SUB24"USINGSQLCODE EMPNO1 PPNUM MOVESQLCODETO SQL-COD if (SQLCODE = 0) then COMPUTE i = i + 1 DISPLAY EMPNO1 " ", PPNUM END-IF ADD 1 TO ii
.
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-04-30)
¤