* Standard COBOL (file "DML064.SCO") calling SQL * procedures in file "DML064.MCO"
**************************************************************** * * COMMENT SECTION * * DATE 6/9/89 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. * * DML064.SCO * WRITTEN BY: KATHY HARVILL * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS ROUTINE TESTS THE RULES FOR UPDATING VIA CURSORS * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * 5.25 <query specification> 5.25<query spec.> SR 11, Sec * definition of "updatable" ****************************************************************
* EXEC SQL DECLARE C2 CURSOR FOR * SELECT HOURS, EMPNUM, PNUM FROM UPDATE_VIEW2 END-EXEC * EXEC SQL OPEN C2; CALL"SUB7"USINGSQLCODE MOVESQLCODETO SQL-COD
MOVE 1 TO ii PERFORM P49 UNTIL ii > 14 * EXEC SQL CLOSE C2; CALL"SUB8"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT (*) INTO :COUNT2 FROM WORKS WHERE HOURS * = 10 END-EXEC CALL"SUB9"USINGSQLCODE COUNT2 MOVESQLCODETO SQL-COD DISPLAY" COUNT2 should be 3, COUNT2=", COUNT2 " "
* EXEC SQL UPDATE UPDATE_VIEW3 SET EMPNUM = 'E7' WHERE EMPNUM = * 'E1' END-EXEC CALL"SUB11"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL DECLARE C3 CURSOR FOR * SELECT * FROM UPDATE_VIEW3 END-EXEC * EXEC SQL OPEN C3; CALL"SUB12"USINGSQLCODE MOVESQLCODETO SQL-COD
MOVE 1 TO ii PERFORM P48 UNTIL ii > 14 * EXEC SQL CLOSE C3; CALL"SUB13"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT (*) INTO :COUNT3 FROM WORKS WHERE * EMPNUM = 'E7' END-EXEC CALL"SUB14"USINGSQLCODE COUNT3 MOVESQLCODETO SQL-COD DISPLAY" COUNT3 should be 2, COUNT3=", COUNT3 " "
* EXEC SQL ROLLBACK WORK; CALL"SUB15"USINGSQLCODE MOVESQLCODETO SQL-COD if (COUNT1 = 2 AND COUNT2 = 3 AND COUNT3 = 2) then DISPLAY" *** pass *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0281','pass','MCO') END-EXEC CALL"SUB16"USINGSQLCODE MOVESQLCODETO SQL-COD else DISPLAY" dml064.sco *** fail *** " * EXEC SQL INSERT INTO TESTREPORT * VALUES('0281','fail','MCO') END-EXEC ADD 1 TO errcnt CALL"SUB17"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF
******************** END TEST0281 *******************
******************** BEGIN TEST0282 *******************
DISPLAY" TEST0282 " DISPLAY" This routine tests the rules for updatable
- " views " DISPLAY" Reference X3.135-89 section 6.9<view def.> SR3
- " and" DISPLAY" 5.25<query spec.> SR 11, definition of
- " 'updatable' " DISPLAY" Cursor with LIKE, IS NULL and comparison
- " predicates" DISPLAY" - - - - - - - - - - - - - - - - - - -"
* EXEC SQL DELETE FROM UPDATE_VIEW4 WHERE EMPNUM = 'E1' * END-EXEC CALL"SUB19"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL DECLARE C4 CURSOR FOR * SELECT PNUM, EMPNUM FROM UPDATE_VIEW4 END-EXEC
* EXEC SQL OPEN C4; CALL"SUB20"USINGSQLCODE MOVESQLCODETO SQL-COD
MOVE 1 TO ii PERFORM P47 UNTIL ii > 14 * EXEC SQL CLOSE C4; CALL"SUB21"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT (*) INTO :COUNT1 * FROM WORKS END-EXEC CALL"SUB22"USINGSQLCODE COUNT1 MOVESQLCODETO SQL-COD DISPLAY" COUNT1 should be 10,COUNT1=", COUNT1 " "
* EXEC SQL DECLARE C8 CURSOR FOR * SELECT EMPNUM, EMPNAME FROM UPDATE_VIEW8 END-EXEC * EXEC SQL OPEN C8; CALL"SUB48"USINGSQLCODE MOVESQLCODETO SQL-COD
MOVE 1 TO ii PERFORM P43 UNTIL ii > 9 * EXEC SQL CLOSE C8; CALL"SUB49"USINGSQLCODE MOVESQLCODETO SQL-COD
* EXEC SQL SELECT COUNT (*) INTO :COUNT2 FROM STAFF * WHERE GRADE IS NULL OR EMPNAME = 'Kathy' END-EXEC CALL"SUB50"USINGSQLCODE COUNT2 MOVESQLCODETO SQL-COD DISPLAY" COUNT2 should be 6, COUNT2=", COUNT2 " "
******************** END TEST0283 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
P50. * EXEC SQL FETCH C1 INTO :CITY1; CALL"SUB60"USINGSQLCODE CITY1 MOVESQLCODETO SQL-COD if (SQLCODE = 0 AND CITY1 = "Deale") then * EXEC SQL DELETE FROM UPDATE_VIEW1 WHERE CURRENT OF C1 * END-EXEC CALL"SUB61"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
P49. * EXEC SQL FETCH C2 INTO :HOURS1, :EMPNO, :PNUM1; CALL"SUB62"USINGSQLCODE HOURS1 EMPNO PNUM1 MOVESQLCODETO SQL-COD if (SQLCODE = 0 AND EMPNO = "E4") then * EXEC SQL UPDATE UPDATE_VIEW2 SET HOURS = 10 WHERE CURRENT * OF C2 END-EXEC CALL"SUB63"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
P48. * EXEC SQL FETCH C3 INTO :EMPNO, :PNUM1, :HOURS1; CALL"SUB64"USINGSQLCODE EMPNO PNUM1 HOURS1 MOVESQLCODETO SQL-COD if (SQLCODE = 0 AND HOURS1 = 80) then * EXEC SQL DELETE FROM UPDATE_VIEW3 WHERE CURRENT OF C3 * END-EXEC CALL"SUB65"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
P47. * EXEC SQL FETCH C4 INTO :PNUM1, :EMPNO; CALL"SUB66"USINGSQLCODE PNUM1 EMPNO MOVESQLCODETO SQL-COD if (SQLCODE = 0 AND EMPNO = "E3") then * EXEC SQL DELETE FROM UPDATE_VIEW4 WHERE CURRENT OF C4 * END-EXEC CALL"SUB67"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
P46. * EXEC SQL FETCH C5 INTO :EMPNO, :EMPNAM; CALL"SUB68"USINGSQLCODE EMPNO EMPNAM MOVESQLCODETO SQL-COD if (SQLCODE = 0) then * EXEC SQL DELETE FROM UPDATE_VIEW5 WHERE CURRENT OF C5 * END-EXEC CALL"SUB69"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
if (SQLCODE = 0 AND GRADE1 = 10) then * EXEC SQL DELETE FROM UPDATE_VIEW6 WHERE CURRENT OF C6 * END-EXEC CALL"SUB71"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
if (SQLCODE = 0 AND CITY1 = "Akron") then * EXEC SQL DELETE FROM UPDATE_VIEW7 WHERE CURRENT OF C7 * END-EXEC CALL"SUB73"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
P43. * EXEC SQL FETCH C8 INTO :EMPNO, :EMPNAM; CALL"SUB74"USINGSQLCODE EMPNO EMPNAM MOVESQLCODETO SQL-COD if (SQLCODE = 0) then * EXEC SQL UPDATE UPDATE_VIEW8 SET EMPNAME = 'Kathy' WHERE * CURRENT OF C8 END-EXEC CALL"SUB75"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
P42. * EXEC SQL FETCH C9 INTO :EMPNAM, :CITY1, :GRADE1; CALL"SUB76"USINGSQLCODE EMPNAM CITY1 GRADE1 MOVESQLCODETO SQL-COD if (SQLCODE = 0) then * EXEC SQL UPDATE UPDATE_VIEW9 SET GRADE = 15 WHERE CURRENT * OF C9 END-EXEC CALL"SUB77"USINGSQLCODE MOVESQLCODETO SQL-COD END-IF ADD 1 TO ii
.
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-04-30)
¤
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.