* Standard COBOL (file "DML080.SCO") calling SQL * procedures in file "DML080.MCO". * STANDARD COBOL (file "DML080.SCO")
**************************************************************** * * COMMENT SECTION * * DATE 1992/06/08 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. * * DML080.SCO * WRITTEN BY: DAVID W. FLATER * * THIS ROUTINE TESTS THE DATA MANIPULATION LANGUAGE FOR SQL. * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.135-1989 * * SECTION 7.3 Procedure * ****************************************************************
*WHERE clause not satisfied - no data MOVE 0 TO SQLCODE DISPLAY"DELETE FROM HU.STAFF WHERE EMPNUM = 'E7';" * EXEC SQL DELETE FROM HU.STAFF WHERE EMPNUM = 'E7'; CALL"SUB2"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD if (SQLCODE NOT = 100) then MOVE 0 TO flag END-IF
*DELETE all rows from empty table - no data (on second DELETE) DISPLAY" " DISPLAY"DELETE FROM HU.STAFF;" * EXEC SQL DELETE FROM HU.STAFF; CALL"SUB3"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODE NOT = 0) then MOVE 0 TO flag END-IF DISPLAY" " DISPLAY"DELETE FROM HU.STAFF;" * EXEC SQL DELETE FROM HU.STAFF; CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD if (SQLCODE NOT = 100) then MOVE 0 TO flag END-IF
*DELETE one row from empty table with WHERE clause - no data DISPLAY" " MOVE 0 TO SQLCODE DISPLAY"DELETE FROM HU.STAFF WHERE EMPNUM = 'E1';" * EXEC SQL DELETE FROM HU.STAFF WHERE EMPNUM = 'E1'; CALL"SUB5"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD if (SQLCODE NOT = 100) then MOVE 0 TO flag END-IF
*WHERE clause not satisfied - no data MOVE 0 TO SQLCODE DISPLAY"UPDATE HU.STAFF SET CITY = 'NOWHERE'" DISPLAY" WHERE EMPNAME = 'NOBODY';" * EXEC SQL UPDATE HU.STAFF * SET CITY = 'NOWHERE' * WHERE EMPNAME = 'NOBODY'; CALL"SUB10"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD if (SQLCODE NOT = 100) then MOVE 0 TO flag END-IF
*global update of grade column - successful completion DISPLAY" " MOVE 100 TO SQLCODE DISPLAY"UPDATE HU.STAFF SET GRADE = 11;" * EXEC SQL UPDATE HU.STAFF * SET GRADE = 11; CALL"SUB11"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODE NOT = 0) then MOVE 0 TO flag END-IF
*UPDATE all rows from empty table - no data (after DELETE) DISPLAY" " MOVE 100 TO SQLCODE DISPLAY"DELETE FROM HU.STAFF;" * EXEC SQL DELETE FROM HU.STAFF; CALL"SUB12"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 0; its value is ", SQL-COD if (SQLCODE NOT = 0) then MOVE 0 TO flag END-IF DISPLAY" " DISPLAY"UPDATE HU.STAFF SET CITY = 'NOWHERE';" * EXEC SQL UPDATE HU.STAFF SET CITY = 'NOWHERE'; CALL"SUB13"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD if (SQLCODE NOT = 100) then MOVE 0 TO flag END-IF
*UPDATE rows with WHERE clause from empty table - no data DISPLAY" " MOVE 0 TO SQLCODE DISPLAY"UPDATE HU.STAFF SET CITY = 'NOWHERE'" DISPLAY" WHERE EMPNAME = 'NOBODY';" * EXEC SQL UPDATE HU.STAFF * SET CITY = 'NOWHERE' * WHERE EMPNAME = 'NOBODY'; CALL"SUB14"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQLCODE should be 100; its value is ", SQL-COD if (SQLCODE NOT = 100) then MOVE 0 TO flag END-IF
* EXEC SQL COMMIT WORK; CALL"SUB18"USING SQLCODE MOVE SQLCODE TO SQL-COD ******************** END TEST0463 ********************
**** 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.15Bemerkung:
(vorverarbeitet)
¤