*Copyright 1996 National Computing Centre Limited, *and Computer Logic R&D S.A *on behalf of the CTS5 SQL2 Project. *All rights reserved. *The CTS5 SQL2 Project is sponsored by the European Community. * *The National Computing Centre Limited and Computer Logic R&D *have given permission to NIST to distribute this program *over the World Wide Web in order to promote SQL standards. *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.
**************************************************************** * * COMMENT SECTION * * SQL VALIDATION TEST SUITE V6.0 * * YTS750.PCO * WRITTEN BY: Susan Watters * TRANSLATED AUTOMATICALLY FROM EMBEDDED C BY CHRIS SCHANZLE * * CREATE DOMAIN as SQL procedure statement, no options * * * REFERENCES * 11.21 SR.1 * 11.21 GR.3 * 21.2.5 DOMAINS view * F#25 Domain definition * F#3 Basic schema manipulation * F#2 Basic information schema * * DATE LAST ALTERED 02.01.96 CTS5 Hand-over Test * * QA Status: Full FC * * Revised by DWF 1996-02-29 * Added columns specified in TC2 * Fixed initializations * Fixed indicator names * Tightened pass criteria * Upcased info schem identifier * Removed EXEC SQL from inside printfs * Removed superfluous code * Fixed off-by-one * Cleanups * Added rollback after authid ****************************************************************
MOVE"CTS1 "TO uid CALL"AUTHID"USING uid MOVE"not logged in, not"TO uidx EXECSQLSELECT USER INTO :uidx FROM CTS1.ECCO END-EXEC MOVESQLCODETO SQL-COD EXECSQLROLLBACK WORK END-EXEC MOVESQLCODETO SQL-COD if (uid NOT = uidx) then DISPLAY"ERROR: User ", uid, " expected. User ", uidx, "
- " connected" STOPRUN END-IF MOVE0TO errcnt
DISPLAY "SQL Test Suite, V6.0, Embedded COBOL, yts750.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
******************** BEGIN TEST7500 ******************* MOVE1TO flag
DISPLAY"check value in DOMAIN_CATALOG is not NULL" if (indic1 = -1) then DISPLAY"NULL value incorrectly found for DOMAIN_CATALOG" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check DATA_TYPE is INTEGER" if (dtype NOT = "INTEGER") then DISPLAY"Expected datatype INTEGER, found ", dtype MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check CHARACTER_MAXIMUM_LENGTH was NULL" if (indic2 NOT = -1) then DISPLAY"CHARACTER_MAXIMUM_LENGTH should be null" DISPLAY"found ", cnum MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check CHARACTER_OCTET_LENGTH is NULL" if (indic3 NOT = -1) then DISPLAY"CHARACTER_OCTET_LENGTH should be null" DISPLAY"value ", olen, " returned" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check COLLATION_CATALOG is NULL" if (indic4 NOT = -1) then DISPLAY"COLLATION_CATALOG should be NULL" DISPLAY"Value ", colcat, " returned" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check COLLATION_SCHEMA is NULL" if (indic5 NOT = -1) then DISPLAY"COLLATION_SCHEMA should be NULL" DISPLAY"Value ", colsch, " returned" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check COLLATION_NAME is NULL" if (indic6 NOT = -1) then DISPLAY"COLLATION_NAME should be NULL" DISPLAY"returned ", colnam MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check CHARACTER_SET_CATALOG is NULL" if (indic7 NOT = -1) then DISPLAY"CHARACTER_SET_CATALOG should be NULL" DISPLAY"returned ", chrset MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check CHARACTER_SET_SCHEMA is NULL" if (indic8 NOT = -1) then DISPLAY"CHARACTER_SET_SCHEMA should be NULL" DISPLAY"value ", chrsch, " returned" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check CHARACTER_SET_NAME is NULL" if (indic9 NOT = -1) then DISPLAY"CHARACTER_SET_NAME should be NULL" DISPLAY"Value ", chrnme, " returned" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check value in NUMERIC_PRECISION is not NULL" if (indica = -1) then DISPLAY"NULL value incorrectly found for
- " NUMERIC_PRECISION" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check value in NUMERIC_PRECISION_RADIX column " DISPLAY"has a value in the set (2,10)" if (2NOT = numrad AND10NOT = numrad) then DISPLAY"Expected NUMERIC_PRECISION_RADIX 2 or 10" DISPLAY"Found ", numrad MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check NUMERIC_SCALE has value '0'" if (numscl NOT = 0) then DISPLAY"expected NUMERIC_SCALE 0, found ", numscl MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check DATETIME_PRECISION is NULL" if (indicb NOT = -1) then DISPLAY"DATETIME_PRECISION should be NULL" DISPLAY"Value ", dttime, " returned" MOVE0TO flag END-IF DISPLAY" "
DISPLAY"check value in DOMAIN_DEFAULT is null" if (indicc NOT = -1) then DISPLAY"DOMAIN_DEFAULT should be NULL" DISPLAY"Value returned is ", domdef END-IF DISPLAY" "
DISPLAY"check value in INTERVAL_TYPE is null" if (indicd NOT = -1) then DISPLAY"INTERVAL_TYPE should be NULL" DISPLAY"Value returned is ", inttyp END-IF DISPLAY" "
DISPLAY"check value in INTERVAL_PRECISION is null" if (indice NOT = -1) then DISPLAY"INTERVAL_PRECISION should be NULL" DISPLAY"Value returned is ", intpre END-IF DISPLAY" "
EXECSQLCOMMIT WORK END-EXEC MOVESQLCODETO SQL-COD ******************** END TEST7500 ********************
**** TESTER MAY CHOOSE TO INSERT CODE FOR errcnt > 0 STOPRUN.
* **** Procedures for PERFORM statements
*Test SQLCODE and SQLSTATE for normal completion.
CHCKOK. DISPLAY"SQLCODE should be 0; its value is ", SQL-COD DISPLAY"SQLSTATE should be 00000; its value is ", SQLSTATE PERFORM NOSUBCLASS THRU EXIT-NOSUBCLASS if (SQLCODENOT = 0OR NORMSQ NOT = "00000") then MOVE0TO flag END-IF if (NORMSQ = "00000"AND NORMSQ NOT = SQLSTATE) then DISPLAY"Valid implementation-defined SQLSTATE accepted." END-IF
.
NOSUBCLASS.
*This routine replaces valid implementation-defined *subclasses with 000. This replacement equates valid *implementation-defined subclasses with the 000 value *expected by the test case; otherwise the test will fail. *After calling NOSUBCLASS, NORMSQ will be tested * SQLSTATE will be printed.
MOVE SQLSTATE TO NORMSQ
MOVE3TO norm1 *subclass begins in position 3 of char array NORMSQ *valid subclass begins with 5-9, I-Z, end of ALPNUM table PERFORMVARYING norm2 FROM14BY1UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
*Quit if NORMSQ is unchanged. Subclass is not impl.-def. *Changed NORMSQ means implementation-defined subclass, *so proceed to zero it out, if valid (0-9,A-Z) if (NORMSQ = SQLSTATE) then GOTO EXIT-NOSUBCLASS END-IF
MOVE4TO norm1 *examining position 4 of char array NORMSQ *valid characters are 0-9, A-Z PERFORMVARYING norm2 FROM1BY1UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
MOVE5TO norm1 *valid characters are 0-9, A-Z *examining position 5 of char array NORMSQ PERFORMVARYING norm2 FROM1BY1UNTIL norm2 > 36 if (NORMSQX(norm1) = ALPNUM(norm2)) then MOVE"0"TO NORMSQX(norm1) END-IF END-PERFORM
*implementation-defined subclasses are allowed for warnings *(class = 01). These equate to successful completion *SQLSTATE values of 00000. *Reference SQL-92 4.28 SQL-transactions, paragraph 2
if (NORMSQX(1) = "0"AND NORMSQX(2) = "1") then MOVE"0"TO NORMSQX(2) END-IF
.
EXIT-NOSUBCLASS. EXIT.
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-06-08)
¤
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 und die Messung sind noch experimentell.