* Standard COBOL (file "COB009.SCO") calling SQL * procedures in file "COB009.MCO"
*************************************************************** * * COMMENT SECTION * * DATE 1989/11/09 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. * * COB009.SCO * WRITTEN BY: S Hurwitz * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * THIS PROGRAM TESTS SQL INTERSPERSED WITH * COBOL NESTED IF STATEMENTS, ON SIZE ERROR, * NOT ON SIZE ERROR, LABEL ON SAME LINE WITH EXEC SQL, * AND VALUE IS CLAUSE * * REFERENCES * AMERICAN NATIONAL STANDARD database language - SQL * X3.168-1989 * * 9.5 <embedded SQL COBOL program> * * ***************************************************************
* EXEC SQL DELETE FROM FF; CALL"SUB11"USING SQLCODE * EXEC SQL DELETE FROM EE; CALL"SUB12"USING SQLCODE * EXEC SQL INSERT INTO EE VALUES (1); CALL"SUB13"USING SQLCODE
MOVE 0 TO I1 MOVE 0 TO J2 MOVE 0 TO I3 MOVE 0 TO I4 MOVE 0 TO J5
IF I1 = 0 IF J2 = 0 IF I3 = 0 * EXEC SQL SELECT HOURS INTO :HOURS1 * FROM WORKS * WHERE EMPNUM = 'E3' END-EXEC CALL"SUB14"USING SQLCODE HOURS1
.
DIVIDE I1 INTO HOURS1 GIVING I4 ONSIZEERROR * EXEC SQL INSERT INTO FF * VALUES (9) END-EXEC. CALL"SUB15"USING SQLCODE. IF ( X = "X" ) GOTO P110. DISPLAY" This should not be displayed! ".
P110. * EXEC SQL SELECT INTTEST INTO :J5 * FROM FF END-EXEC CALL"SUB22"USING SQLCODE J5 ADD J5 TO J2 GIVING J2 NOTONSIZEERROR * EXEC SQL DELETE FROM EE; CALL"SUB16"USING SQLCODE * EXEC SQL INSERT INTO EE * VALUES (4) END-EXEC CALL"SUB17"USING SQLCODE END-ADD * EXEC SQL SELECT INTTEST INTO :J6 * FROM EE END-EXEC CALL"SUB18"USING SQLCODE J6
DISPLAY" The correct answer is: J5 = 9, J2 = 9, J6 = 4 " DISPLAY" and HOURS1 = 20 " DISPLAY" Your answer is: J5 = " J5 DISPLAY" J2 = " J2 DISPLAY" J6 = " J6 DISPLAY" HOURS1 = " HOURS1 IF ( X = "X" ) GOTO P100. DISPLAY" SURPRISE! THIS STATEMENT SHOULD NOT EXECUTE ".
P100. CALL"SUB7"USING SQLCODE * EXEC SQL ROLLBACK WORK;
if ( J5 = 9 and J2 = 9 and J6 = 4 and HOURS1 = 20) then
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.