* Standard COBOL (file "XTS722.SCO") calling SQL * procedures in file "XTS722.MCO".
*Copyright 1995 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 * * XTS722.SCO TEST 7022 * WRITTEN BY: Nickos Backalidis * TRANSLATED AUTOMATICALLY FROM EMBEDDED COBOL BY CHRIS SCHANZLE * * Access to CONSTRAINT_TABLE_USAGE view * * REFERENCES * 21.2.23 -- CONSTRAINT_TABLE_USAGE view * 21.3.18 -- CHECK_COLUMN_USAGE base table * 21.3.15 -- REFERENTIAL_CONSTRAINTS base table * 21.3.13 -- TABLE_CONSTRAINTS base table * F#1 -- Dynamic SQL * F#2 -- Basic information schema * F#3 -- Basic schema manipulation * F#34 -- Usage tables * * DATE LAST ALTERED 14/12/95 CTS5 Hand-over Test * * Cleanups and fixes by V. Kogakis 04/12/95 * * QA Status: QA CHECK * * Revised by DWF 1/29/96: * Corrected expected results * Fixed SDL transactions * Dynamic SQL broken; replaced with static * Removed extraneous SQL syntax * Changed 722ACONS1 to remove SQL syntax error * Harmonized printout with statements executed * Fixed foreign key relationship (target wasn't unique) ****************************************************************
*initialise host variable *we expect a zero so initialise it to a value <> 0 MOVE9TO coun1
*Access the CONSTRAINT_TABLE_USAGE view DISPLAY"SELECT COUNT(*) INTO :coun1" DISPLAY" FROM
- " INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE" DISPLAY" WHERE TABLE_SCHEMA = 'CTS4';" * EXEC SQL SELECT COUNT(*) INTO :coun1 * FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE * WHERE TABLE_SCHEMA = 'CTS4'; CALL"SUB3"USINGSQLCODE SQLSTATE coun1 MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"coun1 should be 0; its value is : ", coun1 if (coun1 NOT = 0) then MOVE0TO flag END-IF DISPLAY" "
*Contents of CONSTRAINT_TABLE_USAGE are now: *TAB722A 722ACONS1 *TAB722A 722ACONS2 *TAB722A 722B
MOVE0TO coun1 MOVE0TO coun2 DISPLAY"SELECT COUNT (DISTINCT TABLE_NAME)," DISPLAY"COUNT(CONSTRAINT_NAME)" DISPLAY"INTO :coun1,:coun2" DISPLAY"FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE" DISPLAY"WHERE CONSTRAINT_SCHEMA = 'CTS4';" * EXEC SQL SELECT COUNT (DISTINCT TABLE_NAME), * COUNT(CONSTRAINT_NAME) * INTO :coun1,:coun2 * FROM INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE * WHERE CONSTRAINT_SCHEMA = 'CTS4'; CALL"SUB9"USINGSQLCODE SQLSTATE coun1 coun2 MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"Coun1 should be 1; it is ", coun1 DISPLAY"Coun2 should be 3; it is ", coun2 if (coun1 NOT = 1OR coun2 NOT = 3) then MOVE0TO flag END-IF DISPLAY" "
*By Dropping table TAB722a the foreign key constraint *declared in TAB722b should be dropped
MOVE5TO coun1 DISPLAY"SELECT COUNT (CONSTRAINT_NAME) INTO :coun1" DISPLAY" FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE" DISPLAY" WHERE TABLE_SCHEMA = 'CTS4';" * EXEC SQL SELECT COUNT (CONSTRAINT_NAME) INTO :coun1 * FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE * WHERE TABLE_SCHEMA = 'CTS4'; CALL"SUB13"USINGSQLCODE SQLSTATE coun1 MOVESQLCODETO SQL-COD PERFORM CHCKOK DISPLAY"COUNT should be 0; its value is ", coun1 if (coun1 NOT = 0) then MOVE0TO flag END-IF DISPLAY" "
******************** END TEST7022 ******************** **** 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.11 Sekunden
(vorverarbeitet am 2026-09-27)
¤
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.
Angebot
Hier finden Sie eine Liste der Produkte des Unternehmens