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
List_Relationships_with_Context
(Relational Model)


Vytvořeno: 12-11-1995 12:56:58
Poslední změna: 12-10-2002 10:24:23

Outputs a list of all relationships shown in the specified relational model with their cardinality, integrity rules, and relations connected by the relationship.

Modul

Module: Relational Model

Zdrojový kód:

PROCEDURE List_Relationships_with_Context FOR RELAREA
BEGIN
/*
  print relationships in REL with context
*/

  first%=0;
  FOREACH Rellink WHERE Rellink.Area=Relarea.Name ORDER BY Source,Target DO
    FOR Relrship WHERE Relrship.Name=Rellink.Name
                   AND Relrship.Source=Rellink.Source
                   AND Relrship.Target=Rellink.Target DO
      IF first%=0 THEN
        PRINT {BOLD,"ARIAL",12} "Vztahy v relačním modelu ";
        PRINT {BOLD,"ARIAL",ITALIC,12} CONV$(Relarea.Boxname),NL(2);
        first%=1;
      END
      FOR Relation AS R1 WHERE R1.Name=Relrship.Source DO
        FOR Relation AS R2 WHERE R2.Name=Relrship.Target DO
          PRINT {"ARIAL",ITALIC,10} CONV$(R1.Boxname)," ";
          PRINT {BOLD,"ARIAL",10} CONV$(Relrship.Boxname)," ";
          PRINT {"ARIAL",ITALIC,10} CONV$(R2.Boxname),NL;
          PRINT {"ARIAL",8} TAB(4),"Integrita (aktualizovat/zrušit):",TAB(28);
          CALL Number2Bitmask(Relrship.Integrity, Integrity$);
          IF MID$(Integrity$,7,1) = "1" THEN
            PRINT {"Arial",8} "(definováno uživatelem)";
          ELSE
          // update:
            IF MID$(Integrity$,6,1) = "1" THEN
              PRINT {"Arial",8} "nullify/";
            ELSIF MID$(Integrity$,5,1) = "1" THEN
              PRINT {"Arial",8} "restriktivní/";
            ELSIF MID$(Integrity$,4,1) = "1" THEN
              PRINT {"Arial",8} "kaskádní/";
            END
          // delete:
            IF MID$(Integrity$,3,1) = "1" THEN
              PRINT {"Arial",8} "nullify";
            ELSIF MID$(Integrity$,2,1) = "1" THEN
              PRINT {"Arial",8} "restriktivní";
            ELSIF MID$(Integrity$,1,1) = "1" THEN
              PRINT {"Arial",8} "kaskádní";
            END
          END

          // print cardinality
          PRINT {"ARIAL",8} NL,TAB(4),"Kardinalita:",TAB(28);
          sCard$ = MID$(Relrship.Cardinality,1,1);
          tCard$ = MID$(Relrship.Cardinality,2,1);
          CALL QueryRelCardinality(Relrship.Name,R1.Name,R2.Name,sCard$,tCard$);
          PRINT {"Arial",8} sCard$," : ",tCard$;
          PRINT NL(2);
        END
      END
    END
  END

  IF first%=0 THEN
    PRINT {BOLD,"ARIAL",10} "Relační model ";
    PRINT {BOLD,"ARIAL",ITALIC,10} CONV$(Relarea.Boxname);
    PRINT {BOLD,"ARIAL",10} " neobsahuje žádné vztahy.",NL(2);
  END

  PRINT NL;

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\21449.htm (C) microTOOL GmbH 2002