* DISCLAIMER: * This program was reviewed by employees of NIST for * conformance to the SQL standards. * NIST assumes no responsibility for any party's use of * this program.
* X/Open and the 'X' symbol are registered trademarks of X/Open Company * Limited in the UK and other countries.
********************************************************* * * COMMENT SECTION * * DATE 1994/04/19 EMBEDDED C LANGUAGE * X/Open SQL VALIDATION TEST SUITE V6.0 * * XOP700.pco * WRITTEN BY: Elaine Pratt * COBOL version modified by Phil Brown * * Tests Defaults and Limits For Data Types * * REFERENCES * X/Open CAE SQL * Section 3.2.2 Data Types * 4.1.3 Data Types and Embedded Host Variables * * <embedded SQL COBOL program> * * DATE PROGRAM LAST CHANGED 2/11/94 * *********************************************************
MOVE"XOPEN1"TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx EXECSQLSELECT USER INTO :uidx FROM XOPEN1.ECCO END-EXEC MOVE SQLCODE TO SQL-COD if (uid NOT = uidx) then DISPLAY"ERROR: User ", uid " expected. User ", uidx "
- " connected" STOPRUN END-IF DISPLAY"X/OPEN Extensions SQL Test Suite, V6.0, Embedded
- "COBOL, xop700.pco" DISPLAY "59-byte ID" DISPLAY"TEd Version #" *date_time print ACCEPT TO-DAY FROMDATE ACCEPT THE-TIME FROMTIME DISPLAY"Date run YYMMDD: " TO-DAY " at hhmmssff: " THE-TIME MOVE 0 TO errflg MOVE 0 to errcnt ******************** BEGIN TEST0700 *******************
DISPLAY" TEST0700 " DISPLAY" X/O,DEFAULTS and LIMITS for DATA TYPES " DISPLAY" X/OPEN CAE SQL Sec. 3.2.2 " DISPLAY" - - - - - - - - - - - - - - - - - - - - - " DISPLAY"### INSERT INTO CHAR_TEST VALUES(:in254);" DISPLAY"### INSERT INTO INT_TEST VALUES(-2147483647);" DISPLAY"### INSERT INTO INT_TEST VALUES(2147483647);" DISPLAY"### INSERT INTO SMALL_TEST VALUES(-32767);" DISPLAY"### INSERT INTO SMALL_TEST VALUES(32767);"
*Initialise host variables and database table MOVEALL"FILL"TO col1. MOVE in254-0 to in254.
* Clear contents from tables used in this test EXECSQLDELETEFROM CHAR_TEST END-EXEC EXECSQLDELETEFROM INT_TEST END-EXEC EXECSQLDELETEFROM SMALL_TEST END-EXEC. EXECSQL COMMIT WORK END-EXEC
*Checks that a column CHAR(254) can hold a character *string of 254 length * CREATE TABLE CHAR_TEST (COL1 CHAR(254)); EXECSQLINSERTINTO CHAR_TEST VALUES(:in254) END-EXEC MOVE SQLCODE TO SQL-COD1
EXECSQLSELECT * INTO :col1 FROM CHAR_TEST END-EXEC MOVE SQLCODE TO SQL-COD
if (col1 NOT = in254) then ADD 1 TO errflg DISPLAY"*** Problem found (TEST STEP NUMBER 1) ! *** " DISPLAY"===============================================" DISPLAY"col1 should be (as an unbroken string)" DISPLAY in254-1 DISPLAY in254-2 DISPLAY in254-3 DISPLAY in254-4 DISPLAY in254-5 DISPLAY in254-6
DISPLAY" " DISPLAY"col1 is (as an unbroken string)" MOVE col1 TO in254-0 DISPLAY in254-1 DISPLAY in254-2 DISPLAY in254-3 DISPLAY in254-4 DISPLAY in254-5 DISPLAY in254-6 DISPLAY" "
DISPLAY"Status codes on store/retrieve are "
SQL-COD1 SQL-COD END-IF * EXEC SQL DELETE FROM CHAR_TEST END-EXEC * MOVE SQLCODE TO SQL-COD
*Checks that an INTEGER column can hold a value from *-2147483647 to 2147483647 * * Initialise host variables and database table MOVE 0 TO int1 MOVE 0 TO int2 * EXEC SQL DELETE FROM INT_TEST END-EXEC.
* CREATE TABLE INT_TEST (COL1 INTEGER); EXECSQLINSERTINTO INT_TEST VALUES(-2147483647) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLSELECT COL1 INTO :int1 FROM INT_TEST END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO INT_TEST VALUES(2147483647) END-EXEC MOVE SQLCODE TO SQL-COD1 EXECSQLSELECT COL1 INTO :int2 FROM INT_TEST
WHERE COL1 >= 2147483647 END-EXEC MOVE SQLCODE TO SQL-COD
if (int1 NOT = -2147483647 OR int2 NOT = 2147483647) then DISPLAY"*** Problem found (TEST STEP NUMBER 2) ! *** " ADD 1 TO errflg END-IF DISPLAY"=================================================" DISPLAY"COL1 should be -2147483647, then 2147483647 " DISPLAY"COL1 is ", int1 ", then ", int2 " " DISPLAY"Status on second store/retrieve "
SQL-COD1 "/" SQL-COD.
*Initialise host variables and database table MOVE 0 TO int1 MOVE 0 TO int2 * EXEC SQL DELETE FROM SMALL_TEST END-EXEC. DISPLAY"================================================="
*Checks that a SMALLINT column can hold a value from *-32767 to 32767 * CREATE TABLE SMALL_TEST (COL1 SMALLINT); EXECSQLINSERTINTO SMALL_TEST VALUES(-32767) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLSELECT COL1 INTO :int1 FROM SMALL_TEST END-EXEC MOVE SQLCODE TO SQL-COD
EXECSQLINSERTINTO SMALL_TEST VALUES(32767) END-EXEC MOVE SQLCODE TO SQL-COD EXECSQLSELECT COL1 INTO :int2 FROM SMALL_TEST
WHERE COL1 > 32766 END-EXEC MOVE SQLCODE TO SQL-COD
IF (int1 NOT = -32767 OR int2 NOT = 32767) then DISPLAY"*** Problem found (TEST STEP NUMBER 3) ! *** " ADD 1 TO errflg END-IF DISPLAY"===============================================" DISPLAY"COL1 should be -32767, then 32767 " DISPLAY"COL1 is ", int1 ", then ", int2 " " DISPLAY"===============================================".
*Display the number of errors encountered DISPLAY" Number of errors detected is ", errflg " " DISPLAY"### maximum number of errors is 3 ###"
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.