* Standard COBOL (file "DML004.SCO") calling SQL * procedures in file "DML004.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. * * DML004.SCO * WRITTEN BY: HU YANPING * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE FETCH STATEMENT IN THE LANGUAGE OF * SQL. THE FORMAT: * FETCH <cursor name> INTO <fetch target list> * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 8.1 <close statement> * SECTION 8.3 <declare cursor> * SECTION 8.6 <fetch statement> * SECTION 8.7 <insert statement> * SECTION 8.8 <open statement> * ****************************************************************
DISPLAY" *** FOR SELECT EMPNUM,HOURS " DISPLAY" *** FROM WORKS " DISPLAY" *** WHERE PNUM='P8' " DISPLAY" *** ORDER BY EMPNUM DESC "
* EXEC SQL DECLARE X CURSOR * FOR SELECT EMPNUM,HOURS * FROM WORKS * WHERE PNUM='P8' * ORDER BY EMPNUM DESC END-EXEC * EXEC SQL OPEN X; CALL"SUB1"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL FETCH X INTO :EMPNO1,:HOURS1; CALL"SUB2"USING SQLCODE EMPNO1 HOURS1 MOVE SQLCODE TO SQL-COD DISPLAY" EMPNO1=", EMPNO1 " and HOURS1=",
HOURS1 " "
DISPLAY" SQLCODE=", SQL-COD " " DISPLAY"The answer should be SQLCODE = 100." if (SQLCODE = 100) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0008','pass','MCO') END-EXEC CALL"SUB3"USING SQLCODE MOVE SQLCODE TO SQL-COD else DISPLAY" dml004.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0008','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD END-IF * EXEC SQL COMMIT WORK; CALL"SUB5"USING SQLCODE MOVE SQLCODE TO SQL-COD
******************** END TEST0008 *******************
******************** BEGIN TEST0009 *******************
DISPLAY" TEST0009 " DISPLAY" FETCH < cursor name > INTO < fetch target list >" DISPLAY"reference X3.135-1989 section 8.6 General Rules 8)" DISPLAY" - - - - - - - - - - - - - - - - - - -" DISPLAY" *** EXEC SQL INSERT INTO WORKS " DISPLAY" *** VALUES('E9','P9',NULL) " DISPLAY" *** EXEC SQL DECLARE Y CURSOR ...... " DISPLAY" *** EXEC SQL FETCH Y INTO :EMPNO1,:HOURS1:indic1
- " "
* EXEC SQL INSERT INTO WORKS * VALUES('E9','P9',NULL) END-EXEC CALL"SUB6"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT EMPNUM * INTO :EMPNO1 * FROM WORKS * WHERE HOURS IS NULL END-EXEC CALL"SUB7"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD
DISPLAY" EMPNUM should be 'E9', EMPNUM = ", EMPNO1 " " * EXEC SQL DECLARE Y CURSOR * FOR SELECT EMPNUM,HOURS * FROM WORKS * WHERE PNUM='P9' * ORDER BY EMPNUM DESC END-EXEC * EXEC SQL OPEN Y; CALL"SUB8"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL FETCH Y INTO :EMPNO1,:HOURS1 :indic1; CALL"SUB9"USING SQLCODE EMPNO1 HOURS1 indic1 MOVE SQLCODE TO SQL-COD MOVE indic1 TO DISP1 DISPLAY" EMPNO1=", EMPNO1 " and HOURS1=",
HOURS1 " " DISPLAY" indic1=", DISP1 " "
* EXEC SQL INSERT INTO WORKS * VALUES('E9','P9',NULL) END-EXEC CALL"SUB14"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL SELECT EMPNUM * INTO :EMPNO1 * FROM WORKS * WHERE HOURS IS NULL END-EXEC CALL"SUB15"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD
DISPLAY" EMPNO1 should be 'E9', EMPNO1 = ", EMPNO1 " " * EXEC SQL DECLARE YY CURSOR * FOR SELECT EMPNUM,HOURS * FROM WORKS * WHERE PNUM='P9' * ORDER BY EMPNUM DESC END-EXEC * EXEC SQL OPEN YY; CALL"SUB16"USING SQLCODE MOVE SQLCODE TO SQL-COD
MOVE"xxx"TO EMPNO2 MOVE -5 TO HOURS1
* EXEC SQL FETCH YY INTO :EMPNO2,:HOURS1; CALL"SUB17"USING SQLCODE EMPNO2 HOURS1 MOVE SQLCODE TO SQL-COD DISPLAY" EMPNO2=", EMPNO2 " and HOURS1=",
HOURS1 " " DISPLAY" SQLCODE should be < 0, SQLCODE = ", SQL-COD MOVE SQLCODE TO i
* EXEC SQL INSERT INTO WORKS * VALUES('E9','P9',NULL) END-EXEC CALL"SUB22"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT EMPNUM * INTO :EMPNO1 * FROM WORKS * WHERE HOURS IS NULL END-EXEC CALL"SUB23"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD
DISPLAY" EMPNUM should be 'E9', EMPNUM = ", EMPNO1 " " * EXEC SQL DECLARE YYY CURSOR * FOR SELECT EMPNUM,HOURS * FROM WORKS * WHERE PNUM='P9' * ORDER BY EMPNUM DESC END-EXEC * EXEC SQL OPEN YYY; CALL"SUB24"USING SQLCODE MOVE SQLCODE TO SQL-COD
MOVE 0 TO HOURS1 MOVE 0 TO indic1 MOVE" "TO EMPNO1
* EXEC SQL FETCH YYY INTO :EMPNO1,:HOURS1 INDICATOR :indic1 * END-EXEC CALL"SUB25"USING SQLCODE EMPNO1 HOURS1 indic1 MOVE SQLCODE TO SQL-COD MOVE indic1 TO DISP1 DISPLAY" EMPNO1=", EMPNO1 " and HOURS1=",
HOURS1 " " DISPLAY" indic1=", DISP1 " "
******************** END TEST0010 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
¤ 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.0.14Bemerkung:
(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.
Angebot
Hier finden Sie eine Liste der Produkte des Unternehmens