* Standard COBOL (file "SUNTAB1.SCO") calling SQL * procedures in file "SUNTAB1.MCO"
**************************************************************** * * COMMENT SECTION * * DATE 1989/02/24 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. * * SUNTAB1.SCO * WRITTEN BY: SUN DAJUN * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * This routine initializes the contents of tables: * STAFF_C, PROJ_M, and STAFF_M * This routine may be run at any time to re-initialize tables. * ****************************************************************
MOVE 0 TO errcnt DISPLAY "SQL Test Suite, V6.0, Module COBOL, suntab1.sco" DISPLAY" " DISPLAY "59-byte ID" DISPLAY"TEd Version #" DISPLAY" " * date_time print * ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME FROMTIME DISPLAY"Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME
*SET NULL foreign key values for tables which *reference each other or are self-referencing:
* EXEC SQL UPDATE STAFF_M * SET PRI_WK = NULL END-EXEC CALL"SUB1"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE PROJ_M * SET MGR = NULL END-EXEC CALL"SUB2"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL DELETE FROM PROJ_M; CALL"SUB3"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL DELETE FROM STAFF_M; CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL UPDATE STAFF_C * SET MGR = NULL END-EXEC CALL"SUB5"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL DELETE FROM STAFF_C; CALL"SUB6"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO STAFF_M * VALUES('E1','Alice',12,'Deale',NULL) END-EXEC CALL"SUB7"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_M * VALUES('E2','Betty',10,'Vienna',NULL) END-EXEC CALL"SUB8"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_M * VALUES('E3','Carmen',13,'Vienna',NULL) END-EXEC CALL"SUB9"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_M * VALUES('E5','Don',12,'Deale',NULL) END-EXEC CALL"SUB10"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_M * VALUES('E4','Don',12,'Deale',NULL) END-EXEC CALL"SUB11"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO PROJ_M * VALUES('P1','MXSS','Design',10000,'Deale',NULL) END-EXEC CALL"SUB12"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO PROJ_M * VALUES('P2','CALM','Code',30000,'Vienna',NULL) END-EXEC CALL"SUB13"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO PROJ_M * VALUES('P4','SDP','Design',20000,'Deale',NULL) END-EXEC CALL"SUB14"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO PROJ_M * VALUES('P3','SDP','Test',30000,'Tample',NULL) END-EXEC CALL"SUB15"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO PROJ_M * VALUES('P5','IRM','Test',10000,'Vienna',NULL) END-EXEC CALL"SUB16"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO PROJ_M * VALUES('P6','PAYR','Design',50000,'Deale',NULL) END-EXEC CALL"SUB17"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL UPDATE STAFF_M * SET PRI_WK = 'P1' * WHERE EMPNUM = 'E1' END-EXEC CALL"SUB18"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE STAFF_M * SET PRI_WK = 'P1' * WHERE EMPNUM = 'E2' END-EXEC CALL"SUB19"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE STAFF_M * SET PRI_WK = 'P1' * WHERE EMPNUM = 'E3' END-EXEC CALL"SUB20"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE STAFF_M * SET PRI_WK = 'P2' * WHERE EMPNUM = 'E4' END-EXEC CALL"SUB21"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE STAFF_M * SET PRI_WK = 'P4' * WHERE EMPNUM = 'E5' END-EXEC CALL"SUB22"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL UPDATE PROJ_M * SET MGR = 'E2' * WHERE PNUM = 'P1' END-EXEC CALL"SUB23"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE PROJ_M * SET MGR = 'E2' * WHERE PNUM = 'P2' END-EXEC CALL"SUB24"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE PROJ_M * SET MGR = 'E3' * WHERE PNUM = 'P3' END-EXEC CALL"SUB25"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE PROJ_M * SET MGR = 'E4' * WHERE PNUM = 'P4' END-EXEC CALL"SUB26"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL UPDATE PROJ_M * SET MGR = 'E4' * WHERE PNUM = 'P5' END-EXEC CALL"SUB27"USING SQLCODE MOVE SQLCODE TO SQL-COD
* EXEC SQL INSERT INTO STAFF_C * VALUES('E1','Alice',12,'Deale',NULL) END-EXEC CALL"SUB28"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_C * VALUES('E2','Betty',10,'Vienna','E1') END-EXEC CALL"SUB29"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_C * VALUES('E3','Carmen',13,'Vienna','E2') END-EXEC CALL"SUB30"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_C * VALUES('E4','Don',12,'Deale','E2') END-EXEC CALL"SUB31"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_C * VALUES('E5','Don',12,'Deale','E1') END-EXEC CALL"SUB32"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_C * VALUES('E6','Tom',14,'Gettysburg','E5') END-EXEC CALL"SUB33"USING SQLCODE MOVE SQLCODE TO SQL-COD * EXEC SQL INSERT INTO STAFF_C * VALUES('E7','Kingdom',18,'Gettysburg','E7') END-EXEC CALL"SUB34"USING SQLCODE MOVE SQLCODE TO SQL-COD
MOVE 0 TO cnt1 MOVE 0 TO cnt2 MOVE 0 TO cnt3 MOVE 0 TO cnt4 MOVE 0 TO cnt5
* EXEC SQL SELECT COUNT(*) INTO :cnt1 * FROM STAFF_M END-EXEC CALL"SUB35"USING SQLCODE cnt1 MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :cnt4 * FROM STAFF_M * WHERE PRI_WK IS NOT NULL END-EXEC CALL"SUB36"USING SQLCODE cnt4 MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :cnt2 * FROM PROJ_M END-EXEC CALL"SUB37"USING SQLCODE cnt2 MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :cnt5 * FROM PROJ_M * WHERE MGR IS NULL END-EXEC CALL"SUB38"USING SQLCODE cnt5 MOVE SQLCODE TO SQL-COD
* EXEC SQL SELECT COUNT(*) INTO :cnt3 * FROM STAFF_C END-EXEC CALL"SUB39"USING SQLCODE cnt3 MOVE SQLCODE TO SQL-COD
if (cnt1 = 5 AND cnt2 = 6 AND cnt3 = 7 AND cnt4
= 5 AND cnt5 = 1) then DISPLAY"PROJ_M, STAFF_M, STAFF_C were created
- " successfully!" else DISPLAY"*******************************************" DISPLAY"* PROJ_M, STAFF_M or STAFF_C ERROR !!! *" DISPLAY"*******************************************" 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.