**************************************************************** * * COMMENT SECTION * * DATE 1989/02/24 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. * * SUNTAB1.PCO * WRITTEN BY: SUN DAJUN * TRANSLATED AUTOMATICALLY FROM EMBEDDED C 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, Embedded COBOL, suntab1.pco" 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:
EXECSQL UPDATE STAFF_M SET PRI_WK = NULLEND-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE PROJ_M SET MGR = NULLEND-EXEC MOVE SQLCODE TO SQL-COD EXECSQLDELETEFROM PROJ_M END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLDELETEFROM STAFF_M END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQL UPDATE STAFF_C SET MGR = NULLEND-EXEC MOVE SQLCODE TO SQL-COD EXECSQLDELETEFROM STAFF_C END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF_M
VALUES('E1','Alice',12,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_M
VALUES('E2','Betty',10,'Vienna',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_M
VALUES('E3','Carmen',13,'Vienna',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_M
VALUES('E5','Don',12,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_M
VALUES('E4','Don',12,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO PROJ_M
VALUES('P1','MXSS','Design',10000,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO PROJ_M
VALUES('P2','CALM','Code',30000,'Vienna',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO PROJ_M
VALUES('P4','SDP','Design',20000,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO PROJ_M
VALUES('P3','SDP','Test',30000,'Tample',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO PROJ_M
VALUES('P5','IRM','Test',10000,'Vienna',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO PROJ_M
VALUES('P6','PAYR','Design',50000,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQL UPDATE STAFF_M SET PRI_WK = 'P1'
WHERE EMPNUM = 'E1'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE STAFF_M SET PRI_WK = 'P1'
WHERE EMPNUM = 'E2'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE STAFF_M SET PRI_WK = 'P1'
WHERE EMPNUM = 'E3'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE STAFF_M SET PRI_WK = 'P2'
WHERE EMPNUM = 'E4'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE STAFF_M SET PRI_WK = 'P4'
WHERE EMPNUM = 'E5'END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQL UPDATE PROJ_M SET MGR = 'E2'
WHERE PNUM = 'P1'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE PROJ_M SET MGR = 'E2'
WHERE PNUM = 'P2'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE PROJ_M SET MGR = 'E3'
WHERE PNUM = 'P3'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE PROJ_M SET MGR = 'E4'
WHERE PNUM = 'P4'END-EXEC MOVE SQLCODE TO SQL-COD EXECSQL UPDATE PROJ_M SET MGR = 'E4'
WHERE PNUM = 'P5'END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO STAFF_C
VALUES('E1','Alice',12,'Deale',NULL) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_C
VALUES('E2','Betty',10,'Vienna','E1') END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_C
VALUES('E3','Carmen',13,'Vienna','E2') END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_C
VALUES('E4','Don',12,'Deale','E2') END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_C
VALUES('E5','Don',12,'Deale','E1') END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_C
VALUES('E6','Tom',14,'Gettysburg','E5') END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLINSERTINTO STAFF_C
VALUES('E7','Kingdom',18,'Gettysburg','E7') END-EXEC 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
EXECSQLSELECTCOUNT(*) INTO :cnt1 FROM STAFF_M END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECTCOUNT(*) INTO :cnt4 FROM STAFF_M
WHERE PRI_WK ISNOTNULLEND-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECTCOUNT(*) INTO :cnt2 FROM PROJ_M END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECTCOUNT(*) INTO :cnt5 FROM PROJ_M
WHERE MGR ISNULLEND-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLSELECTCOUNT(*) INTO :cnt3 FROM STAFF_C END-EXEC 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
EXECSQL COMMIT WORK END-EXEC MOVE SQLCODE TO SQL-COD
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.