* Standard COBOL (file "DML077.SCO") calling SQL * procedures in file "DML077.MCO".
* STANDARD COBOL (file "DML077.SCO")
**************************************************************** * * COMMENT SECTION * * DATE 1991/07/30 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. * * DML077.SCO * WRITTEN BY: YOLANDA HERD * * * REFERENCES * AMERICAN NATIONAL STANDARD database language * X3.135-1989 * * ****************************************************************
* EXEC SQL INSERT INTO TEMP_SS VALUES('E7',NULL,'Frankfurt') * ; CALL"SUB2"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after NULL literal INSERT = ", SQL-COD
MOVE 15 TO GRDE COMPUTE indic1 = -1
* EXEC SQL INSERT INTO TEMP_SS * VALUES('E8',:GRDE:indic1,'Atlanta'); CALL"SUB3"USING SQLCODE GRDE indic1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after NULL with indic INSERT = ", SQL-COD
* EXEC SQL INSERT INTO TEMP_SS(EMPNUM) VALUES('E9'); CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after NULL INSERT by excluding column = ",
SQL-COD
* EXEC SQL UPDATE WORKS * SET HOURS = NULL * WHERE PNUM = 'P2'; CALL"SUB5"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after UPDATE WORKS 'P2' = ", SQL-COD
* EXEC SQL INSERT INTO TEMP_SS * SELECT PNUM,HOURS,'Nowhere' * FROM WORKS * WHERE EMPNUM = 'E1'; CALL"SUB6"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after INSERT SELECT 'E1' = ", SQL-COD
* EXEC SQL UPDATE TEMP_SS * SET GRADE = NULL * WHERE EMPNUM = 'E3'; CALL"SUB7"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after UPDATE TEMP_SS 'E3' = ", SQL-COD
* EXEC SQL UPDATE TEMP_SS * SET GRADE = :GRDE:indic1 * WHERE EMPNUM = 'E5'; CALL"SUB8"USING SQLCODE GRDE indic1 MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE after UPDATE TEMP_SS with indic = ",
SQL-COD
******************** END TEST0444 *******************
******************** BEGIN TEST0445 ******************* DISPLAY" TEST0445 " DISPLAY" Values not assigned to targets for SQLCODE=100 " DISPLAY" reference X3.135-1989" DISPLAY"
- " ----------------------------------------------------"
MOVE 0 TO flag1 MOVE"ZZZ"TO PNO1
* EXEC SQL SELECT PNUM INTO :PNO1 * FROM WORKS * WHERE HOURS = 13; CALL"SUB25"USING SQLCODE PNO1 MOVE SQLCODE TO SQL-COD DISPLAY"PNO1 = ", PNO1 ", SQLCODE after SELECT PNUM = ",
SQL-COD DISPLAY" "
if (SQLCODE NOT = 100 OR PNO1 NOT = "ZZZ") then MOVE 1 TO flag1 END-IF
MOVE 99 TO HRS
* EXEC SQL SELECT HOURS INTO :HRS * FROM WORKS * WHERE EMPNUM = 'E4' AND PNUM = 'P1'; CALL"SUB26"USING SQLCODE HRS MOVE SQLCODE TO SQL-COD DISPLAY"HRS = ", HRS ", SQLCODE after SELECT HOURS = ",
SQL-COD DISPLAY" "
if (SQLCODE NOT = 100 OR HRS NOT = 99) then MOVE 1 TO flag1 END-IF
MOVE 999 TO NUM
* EXEC SQL SELECT COL1 INTO :NUM * FROM VTABLE * WHERE COL2 > 500; CALL"SUB27"USING SQLCODE NUM MOVE SQLCODE TO SQL-COD DISPLAY"NUM = ", NUM ", SQLCODE after SELECT COL1 = ",
SQL-COD
if (SQLCODE NOT = 100 OR NUM NOT = 999) then MOVE 1 TO flag1 END-IF
* EXEC SQL DECLARE XX CURSOR FOR * SELECT PNUM,HOURS * FROM WORKS * WHERE EMPNUM > 'E1' END-EXEC
* EXEC SQL DECLARE YY CURSOR FOR * SELECT COL2, COL3 * FROM VTABLE END-EXEC
MOVE 0 TO count1 MOVE 0 TO count2
MOVE"YY"TO PNO1 MOVE 99 TO HRS MOVE 99 TO INT1 MOVE 99 TO INT2
* EXEC SQL OPEN XX; CALL"SUB28"USING SQLCODE MOVE SQLCODE TO SQL-COD
MOVE 1 TO i PERFORM P48 UNTIL i > 14
* EXEC SQL CLOSE XX; CALL"SUB29"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL OPEN YY; CALL"SUB30"USING SQLCODE MOVE SQLCODE TO SQL-COD
MOVE 1 TO i PERFORM P47 UNTIL i > 9
* EXEC SQL CLOSE YY; CALL"SUB31"USING SQLCODE MOVE SQLCODE TO SQL-COD
******************** END TEST0445 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
P50. * EXEC SQL FETCH X INTO :EMPNO1; CALL"SUB36"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD
if (EMPNO1 = "E2") then MOVE"E9"TO EMPNO1 END-IF
if (EMPNO1 = "E3") then MOVE"E7"TO EMPNO1 END-IF
if (EMPNO1 = "E4") then MOVE"E6"TO EMPNO1 END-IF
* EXEC SQL UPDATE WORKS * SET EMPNUM = :EMPNO1 * WHERE CURRENT OF X; CALL"SUB37"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD ADD 1 TO i
.
P49. * EXEC SQL FETCH Y INTO :EMPNO1; CALL"SUB38"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD
if (EMPNO1 = "E2") then MOVE"E9"TO EMPNO1 END-IF
if (EMPNO1 = "E3") then MOVE"E7"TO EMPNO1 END-IF
if (EMPNO1 = "E4") then MOVE"E6"TO EMPNO1 END-IF
if (EMPNO1 = "E5") then MOVE"E8"TO EMPNO1 END-IF
* EXEC SQL UPDATE STAFF * SET EMPNUM = :EMPNO1 * WHERE CURRENT OF Y; CALL"SUB39"USING SQLCODE EMPNO1 MOVE SQLCODE TO SQL-COD ADD 1 TO i
.
P48. * EXEC SQL FETCH XX INTO :PNO1, :HRS; CALL"SUB40"USING SQLCODE PNO1 HRS MOVE SQLCODE TO SQL-COD
if (SQLCODE = 0) then COMPUTE count1 = count1 + 1 END-IF ADD 1 TO i
.
P47. * EXEC SQL FETCH YY INTO :INT1, :INT2; CALL"SUB41"USING SQLCODE INT1 INT2 MOVE SQLCODE TO SQL-COD
if (SQLCODE = 0) then COMPUTE count2 = count2 + 1 END-IF ADD 1 TO i
.
Messung V0.5
¤ 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.5Bemerkung:
(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.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.