**************************************************************** * * COMMENT SECTION * * DATE 1992/06/08 EMBEDDED 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.PCO * 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';" EXECSQLDELETEFROM HU.STAFF WHERE EMPNUM = 'E7'END-EXEC 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;" EXECSQLDELETEFROM HU.STAFF END-EXEC 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;" EXECSQLDELETEFROM HU.STAFF END-EXEC 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';" EXECSQLDELETEFROM HU.STAFF WHERE EMPNUM = 'E1'END-EXEC 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0462','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" dml080.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0462','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
*WHERE clause not satisfied - no data MOVE 0 TO SQLCODE DISPLAY"UPDATE HU.STAFF SET CITY = 'NOWHERE'" DISPLAY" WHERE EMPNAME = 'NOBODY';" EXECSQL UPDATE HU.STAFF SET CITY = 'NOWHERE'
WHERE EMPNAME = 'NOBODY'END-EXEC 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;" EXECSQL UPDATE HU.STAFF SET GRADE = 11 END-EXEC 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;" EXECSQLDELETEFROM HU.STAFF END-EXEC 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';" EXECSQL UPDATE HU.STAFF SET CITY = 'NOWHERE'END-EXEC 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';" EXECSQL UPDATE HU.STAFF SET CITY = 'NOWHERE'
WHERE EMPNAME = 'NOBODY'END-EXEC 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
EXECSQL ROLLBACK WORK END-EXEC MOVE SQLCODE TO SQL-COD
if ( flag = 1 ) then DISPLAY" *** pass *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0463','pass','PCO') END-EXEC MOVE SQLCODE TO SQL-COD else DISPLAY" dml080.pco *** fail *** " EXECSQLINSERTINTO HU.TESTREPORT
VALUES('0463','fail','PCO') END-EXEC MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 END-IF
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 ist noch experimentell.