* Standard COBOL (file "FLG008.SCO") calling SQL * procedures in file "FLG008.MCO". * STANDARD COBOL (file "FLG008.SCO")
**************************************************************** * * COMMENT SECTION * * DATE 1989/11/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. * * FLG008.SCO * WRITTEN BY: JOAN SULLIVAN * * THIS ROUTINE TESTS AN EXTENSION TO SQL. * * REFERENCES * FEDERAL INFORMATION PROCESSING STANDARDS - SQL * FIPS PUB 127 * * 10. Specifications. * ****************************************************************
* EXEC SQL DECLARE GROUPX CURSOR FOR * SELECT PTYPE, CITY, SUM (BUDGET), COUNT(*) * FROM PROJ * GROUP BY CITY * ORDER BY CITY END-EXEC
* EXEC SQL OPEN GROUPX; CALL"SUB2"USING SQLCODE MOVE SQLCODE TO SQL-COD MOVE 0 TO cnt1 MOVE 0 TO vienna
MOVE 0 TO i PERFORM P50 UNTIL i > 9
DISPLAY"Total rows fetched: ", cnt1 if (cnt1 = 3) then DISPLAY"3 rows: The number of cities" END-IF if (cnt1 = 6) then DISPLAY"6 rows: The number of (detail) rows in the
- " table" END-IF if (cnt1 = 4) then DISPLAY"4 rows: The number of city and ptype
- " combinations" END-IF if (vienna = 1) then DISPLAY"Sample PTYPE selected from 2 values" END-IF
if (cnt1 > 0) then * EXEC SQL INSERT INTO TESTREPORT * VALUES('0454','pass','MCO'); CALL"SUB3"USING SQLCODE MOVE SQLCODE TO SQL-COD DISPLAY"SQL extension for nonGROUP columns executed
- " successfully." DISPLAY"Vendor must demonstrate FIPS flagger WARNING." else * EXEC SQL INSERT INTO TESTREPORT VALUES * ('0454','nogo','MCO'); CALL"SUB4"USING SQLCODE MOVE SQLCODE TO SQL-COD COMPUTE errcnt = errcnt + 1 DISPLAY"Vendor does not support selecting nonGROUP" DISPLAY" columns in GROUP BY." DISPLAY"Support of nonGROUP columns in GROUP BY" DISPLAY" is not required." END-IF
******************** END TEST0454 *******************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0
STOPRUN.
* **** Procedures for PERFORM statements
P50. MOVE 0 TO SUM1 MOVE 0 TO COUNT1 MOVE"x"TO CITY1 MOVE"x"TO PTYPE1
* EXEC SQL FETCH GROUPX * INTO :PTYPE1, :CITY1, :SUM1, :COUNT1; CALL"SUB6"USING SQLCODE PTYPE1 CITY1 SUM1 COUNT1 MOVE SQLCODE TO SQL-COD if (SQLCODE = 0) then COMPUTE cnt1 = cnt1 + 1 END-IF
if (cnt1 = 2 AND CITY1 = "Deale"AND COUNT1 =
3 AND SUM1 = 80000) then DISPLAY"Redundant sum and count for detail PTYPE in
- " GROUP BY" END-IF if (SQLCODE = 0 AND PTYPE1 = "Code"AND SUM1 =
30000) then DISPLAY"Subtotal by detail PTYPE in GROUP BY" END-IF if (CITY1 = "Vienn"AND PTYPE1 = "Code") then COMPUTE vienna = vienna + 1 END-IF if (CITY1 = "Vienn"AND PTYPE1 = "Test") then COMPUTE vienna = vienna + 1 END-IF ADD 1 TO i
.
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
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.