Informační tok Funkční structura Datová struktura ER model Modulová struktura Typová struktura Relační model Dokumentace


[Celkový datový model] [Funkce] [Externí rohraní] [Stavové diagramy] [Datové elementy] [Entity] [Relace]
[Databáze] [Události] [Materiály] [Generovací funkce] [Vyhodnocovací funkce] [Konfigurace] [Uživatelé] [Projekt] [Home]



Vyhodnocovací funkce
Constraints_incomplete
(Review-Manager Data model checks)


Vytvořeno: 02-01-2000 19:38:19
Poslední změna: 12-10-2002 10:56:35

Outputs all constraints, that have no attribute, or where the attributes don't correspond to the primary key (Unique constraints), or have no condition (check constraints).

Modul

Module: Review-Manager Data model checks

Zdrojový kód:

PROCEDURE Constraints_incomplete()
BEGIN

    PRINT "Integritní omezení", NL;
    
    FOREACH Index AS Constraint WHERE Constraint.Type <> 0
                                ORDER BY Relation, Name DO

        IF Constraint.Type = 1 THEN // UNIQUE

            num% = 0;
            
            FOREACH Indexattribute WHERE Indexattribute.Relation = Constraint.Relation AND
                                         Indexattribute.Index = Constraint.Name DO
                num% = count();
                BREAK;
            END // FOREACH Indexattribute

            IF num% = 0 THEN
                CALL Util_PrintConstraint(Constraint.Tid, "", "jednoznačné omezení bez atributu", FALSE);
            ELSE
                
                numFound% = 0;
                FOREACH Relattribute WHERE Relattribute.Relation = Constraint.Relation AND
                                           Relattribute.Pkey <> 0 DO
                    IF num% <> count() THEN
                        BREAK;
                    END // IF
                    FOR Indexattribute WHERE Indexattribute.Relation = Constraint.Relation AND
                                             Indexattribute.Index = Constraint.Name AND
                                             Indexattribute.Attribute = Relattribute.Name DO
                        numFound% = numFound% + 1;
                    END // FOR Indexattribute
                END // FOREACH Relattribute
                
                IF numFound% = num% THEN
                    CALL Util_PrintConstraint(Constraint.Tid, "", "jednoznačné omezení se shoduje s primárním klíčem", FALSE);
                END // IF
                
            END // IF

        ELSE // Type = 2, CHECK

            IF trim$(Constraint.Code[ConstrCheck]) = "" THEN
                CALL Util_PrintConstraint(Constraint.Tid, "", "podmíněné omezení bez zadaného kódu podmínky", FALSE);
            END // IF

        END // IF
        
    END // FOREACH Index AS Constraint
   
END


Generováno: 16.10.2003 7:41 Systém: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\Projekt03.csf Generováno systémem case/4/0
Vygeneroval: Administrator Soubor: C:\Documents and Settings\hajsman\Dokumenty\Vyuka\Irs2\Projekt case40\html\276311464.htm (C) microTOOL GmbH 2002