![]() |
Přídavné atributy objektů |
![]() |
Funkční celky | Různé způsoby propojování objektů |
![]() |
Při práci s Kaskádou vytváří uživatelé v databázi stále nové datové objekty různých druhů a také dochází k modifikaci dat, která již v databázi existují.
Se stejnými daty může v jednom okamžiku pracovat více uživatelů, nebo jeden uživatel může mít stejná data zobrazena ve více otevřených oknech své Kaskády, v různých kartách stejného okna apod.
Není samozřejmostí, že uživatel vidí vždy absolutně přesně to, co je v databázi. Často vidí na obrazovce to, co bylo v databázi v okamžiku posledního překreslení příslušného okna (panelu, karty, ...) a přitom v databázi může již být zmodifikovaný údaj, k jehož změně došlo před malou chvílí.
Pro uživatele je samozřejmě příjemné (a často to považuje za samozřejmé), když zobrazená data jsou co nejaktuálnější. Bohužel však každá mince má dvě strany a v tomto případě druhou stranou je zatěžování SQL serveru.
Např. modul, prohlížeč objektu,
nějaký dialog, ...
V libovolné dílčí části okna budou spolehlivě zobrazena data, která v tomto okamžiku existují v databázi,
případně data "čerstvější" (viz. dále).
Uživatel Kaskády má k dispozici možnost kdykoliv vynutit překreslení určitých dat, tedy přečtení aktuálních hodnot z databáze a jejich výpis na obrazovku. Jde o univerzální funkci, která využívá toho, že jednotlivé prvky (vizuální komponenty) uživatelského rozhraní (editační pole, tabulky, comba, ...) jsou spojeny s tzv. "datovým zdrojem". Tento zdroj dostává pokyn k "refreši" (načtení aktuálních dat z databáze) a následně promítá hodnoty do všech vizuální komponent, které jsou s ním spojené. Při stisku klávesy <F5> tedy záleží na tom, která vizuální komponenta je zaměřena. Jí a jejího okolí se bude načtení aktuálních dat týkat.
Při některých činnostech (vytvoření / změna / smazání objektu nebo propojení apod.) posílá SQL server informaci všem přihlášeným klientům. Program Kaskáda na tyto informace určitým způsobem reaguje, zjišťuje, zda se změny mohou týkat toho co se právě zobrazuje, rozhoduje se o tom, zda provést automatické načtení aktuálních dat. Právě tento mechanismus způsobuje, že se většinou promítnou změněná data na obrazovce všech uživatelů ihned. Má to však svá úskalí (viz. dále) a nelze na to zcela spoléhat.
Každé čtení dat z databáze zatěžuje SQL server. Otázkou je jak často a jak mnoho dat se načítá.
Autorský tým Kaskády hledá při vývoji taková řešení, která vedou k optimálnímu poměru mezi aktuálností
zobrazovaných dat a zátěží SQL serveru.
Dávkové mazání objektů a/nebo propojení je typickým příkladem situace, kdy může vzniknout množství zpráv pro klienty a následně "nezřízeně mnoho" požadavků na přečtení nových dat, aniž by to bylo opravdu pro uživatele nezbytné.
SQL server proto během dávkového mazání informace o změnách jednotlivých objektů klientům nesděluje. V důsledku toho se pak může stát, že některý klient vidí na obrazovce neaktuální informaci. Při "sáhnutí" na příslušný záznam se pak objeví upozornění aplikace na neaktuálnost dat, nehrozí žádný omyl. Je to menší zlo, než kdyby docházelo k nadměrnému přetěžování SQL serveru.
![]() |
Přídavné atributy objektů |
![]() |
Funkční celky | Různé způsoby propojování objektů |
![]() |