Univerzální ukládání konfigurace do DB

Klíčová slova: Konfigurace, DB
Rubrika: Delphi

Píšete menší aplikace s oknem konfigurace a už vás nebaví vždy znova psát ukládací procedury? V následujícím článku vám představím řešení pomocí univerzální ukládací procedury, kterou již nebudete muset přepisovat.

Řešení které vám tu předvedu řeší dva základní problémy:

  • Změna formuláře konfigurace např. přidáním dalších komponent.
  • Vytváření nového programu kam přenášíte starší ukládací proceduru.

V obou případech následuje hledání a úprava vaší ukládací a načítací proceduru patřičným způsobem. Pokud jde o větší množství parametrů, které chcete ukládat, je to většinou velmi zdlouhavé a otravné. Pokusil jsem setohoto problému zbavit jednou provždy a vytvořil jsem Frame který obsahuje vše potřebné pro ukládání a načítání vybraných typů jednoduše po stisku tlačítka.

Základní princip této univerzální procedury pro ukládání a načítání konfigurace nějakého okna je založen na vlastnictví komponent. Proceduře která provádí danou akci předáváme vlastníka těchto komponent jako parametr. Jde většinou o TForm nebo TFrame. Vlastní procedura ukládání pak prochází všechny komponenty vlastníka a u vybraného typu komponenty ukládá námi zvolenou vlastnost, název a typ komponenty do databáze. Zpětně při načítání konfigurace se dohledá název komponenty a podle typu se z databáze nastaví některá její vlastnost.

 
FrmNastav Pro univerzálnost a přenositelnost kódu mezi aplikacemi jsem vše co potřebujete pro toto ukládání a načítání umístil na jediný Frame s názvem FrmNastav. Vložíte-li tento Frame např. do vašeho okna s konfigurací máte "skoro" všechno vyřešené. Nejdůležitější jsou samozřejmě tlačítka Uložit a Načíst Hodnoty. Za nimi se skrývá zdrojový kód, který si automaticky zjistí formulář vlastnící FrmNastav a uloží vybrané vlastnosti komponent, které tento formulář vlastní do databáze.
 
Na komunikací s databází jsem raději použil komponentu TQuery pro případ, že by bylo třeba to někde aplikovat proti nějaké větší SQL databázi. Ostatní komponenty slouží pro vizualizaci a zobrazení informací o průběhu načítání nebo ukládání.Ze základního popisu principu procedury je již patrná struktura databáze, do které budeme konfiguraci ukládat. Pro ukládání jsem využil Paradoxové tabulky. Struktura je následující:
 
Název Položky Typ položky Popis 
ID_Nastav AutoIncrement Jde o jednoznačný identifikátor záznamu v databázi
Typ Numeric Identifikuje typ komponenty (např. pro TEdit =1 apod.).
Nazev Char 50 Do této položky se ukládá název vlastní ukládané komponenty.
Hodnota Char 255 Vlastní hodnota některé z vlastností komponenty.
 
Vhodné je uložit tuto tabulku vždy v podadresáři DB vlastní aplikace kde ji procedury FrmNasrav také hledají. Tedy pokud máte aplikaci uloženou např. v C:ProgramFilesAplikace měla by databáze tedy ležet v adresáři C:ProgramFilesAplikaceDB.

Do této databáze budeme ukládat následující vlastnosti vybraných typů

Typ komonety Vlastnost komponety
TEdit Text
TCheckBox Checked
TListBox ItemIndex
TRadioGroup ItemIndex
 
Pro názornost a prezentaci síly si vytvořme následující jednoduchou aplikaci.
 
Main okno
 
Na hlavní formulář (které představuje okno konfigurace) umístěme např. dvě komponenty TEdit, dvě TCheckBox, jednu komponentu typu TStringList a nakonec komponentu TRadioGroup. Tyto komponenty jsou umístěné na pravou stranu hlavního formuláře. Na levé straně pak vložíme frame FrmNastav, který se bude starat o vlastní ukládání a načítání. Nyní stačí pouze přeložit a pustit.
 

V okně si libovolným způsobem nastavte hodnoty komponent TEdit a TCheckBox. U Listboxu a RadiGroup nastavte některou s přednastavených hodnot a jednoduše zmáčkněte tlačítko uložit. Program v tu to chvíli uloží nastavené parametry do databáze. O průběhu ukládání jste průběžně informováni. Na závěr se také dozvíte kolik parametru se uložilo.

 
Pokud na hlavním formulář provedete nějaké změny nebo přidáte další komponenty, nemusíte se již v hlavní aplikaci dále starat o jejich ukládání a načítání a měnit tyto procedury.
 

V současné době tento frame používám jen pro jednoduchá okna. Nelze s ním tedy ukládat více oken ani příliš složitá okna obsahující např další framy. To však můžete všechno vylepšit sami. K dispozici dávám zdrojové kódy jak od FrmNastav, tak od celé Testovací aplikace (včetně DB) napsané v D6.

Přeji hodně zdaru při vašem vývoji.

Jiří Provazník

 

Autor: Jiří Provazník
Datum vydání: 11.07.2002 | Zobrazeno: 3520
Permanentní odkaz: Univerzální ukládání konfigurace do DB

Komentáře (0)
Přidej vlastní komentář:
Následující (běžně neviditelná) pole slouží pro vnitřní identifikaci systému. Pokud je vyplníte nebude možné váš požadavek na straně serveru zpracovat:
URL:
contents:
Website:
Pro odeslání vašeho komentáře použijte tlačítko "Odeslat". Toto tlačítko nepoužívejte:

Následující položky je vhodné vyplnit:
Jméno :
Email :
Web :
Místo :
Hodnocení:
Hodnocení jako pomocí hvězdiček
1/5= nejhorší, 5/5=nejlepší