290 likes | 508 Views
Databázové aplikácie – vývojové prostredie Delphi. DB aplikácie v Delphi Architektúra DB Aplikácie v delphi Borland Database Engine (DBE) Prístup k databáze a dátam Tvorba GUI Tvorbu tlačových zostáv a export dát. Architektúra aplikácie v delphi.
E N D
Databázové aplikácie – vývojové prostredie Delphi DB aplikácie v Delphi Architektúra DB Aplikácie v delphi Borland Database Engine (DBE) Prístup k databáze a dátam Tvorba GUI Tvorbu tlačových zostáv a export dát
Architektúra aplikácie v delphi • Súborová databázová aplikácia – aplikácia pracuje nad databázami typu Paradox, Dbf, Xls,..., ku ktorým pristupuje priamo, pričom umožňuje využiť rozhrania s podporou SQL • Architektúra Klient/Server • Klient – aplikačný program, ktorý odosiela príkazy databáze cez odpovedajúce rozhranie, prijíma dotazované výsledky • Server – databáza, prijíma požiadavky vo forme SQL príkazov, spracuje ich a vysiela výsledok ku klientovi • Viacvrstvové databázové aplikácie – Aplikácia zložená z prezentačnej, výkonnej vrstvy a SQL databázy
Štruktúra databázovej aplikácie UI Dataset • UI~ užívateľské formuláre – interaktívne rozhranie medzi užívateľom a aplikáciou • Dataset – množina záznamov z databázy • Data-Aware – časti UI vizualizujúce dáta • Data source – prepojenie medzi UI ~ Dataset • Data connection- mechanizmuspre získanieinformácie z databázového servera, súboru na disku, inej dataset komponenty. • Data module – kontajnér pre dátové komponenty
Borland Database Engine • Knižnica, ktorá je zástupcom databázy pre aplikáciu • Implementuje priamy prístup k lokálnym DB súborom (dBase, Paradox, ASCII, FoxPro, MS Access) • Umožňuje pomocou SQL-Link/ODBC rozhrania komunikáciu s databázovým serverom • Poskytuje jednotné rozhranie pre prístup do databázy • Vykonáva riadenie toku dát
Aplikácia založená na BDE Strana servera Strana klienta Borland Database Engine Súbor RDBMS SQL-Links Užívateľská aplikácia Databázové komponenty DB Databázový klient ODBC Ovládač
Komponenty BDE • Nevizuálne komponenty pre prácu s databázou a spracovanie dát • Sada tried, ktoré využívajú funkčnosť BDE a zjednodušujú vývoj aplikácie • Obsahuje komponenty: • Dataset - TTable, TQuery, TStoredProcedure • Data connection – TDatabase, TSession • Podporné – TBatchMove, TUpdateSQL
Základné BDE DataSet triedy • TDataSet - Abstraktná trieda obsahujúca základné vlastnosti, metódy a udalosti pre prácu s dátami • TBDEDataSet - Definuje BDE funkcionalitu pre DataSet • TDBDataSet – Definuje konektivitu pre databázy (popis, vytvorenie a udržiavanie databázového spojenia)
Komponent Table • Poskytuje priamy prístup k všetkým záznamom a poliam príslušnej databázovej tabuľky • Pracuje iba nad jednou tabuľkou, s možnosťou prepojenia na index • Implementuje metódy pre sprístupnenie (pohyb), vyhľadávanie, pridávanie, editáciu a mazanie záznamov, ďalej metódy pre vytvorenie a zrušenie tabuľky • Poskytuje metódy pre filtráciu, triedenie záznamov • Spracovávanie dát sa vykonáva na strane klienta • Komponent využiteľný najmä pre prácu s lokálnou súborovou databázou (dBase, Paradox, FoxPro...) • Použitie pri databázovom systéme nevyžaduje zadávanie SQL • Je doporučená pre prácu s malými tabuľkami
Komponet Query • Komponet založený na báze SQL • Sprístupňuje dáta jedneho alebo viacerých databázových objektov (tabuliek, pohľadov...) použitím SQL príkazu • Pracuje zo vzdialenými databázami ako aj lokálnymi súborovými databázami typu Paradox, FoxPro, ASCII • Podporuje používať heterogénne dotazy • Implementuje metódy pre lokálne spracovanie záznamov ako v prípade komponentu Table • Poskytuje metódy pre zadanie a spustenie DDL a DML príkazov • Umožňuje sprístupniť a spracovať výsledok SQL dotazu • Automatická možnosť editácie záznamov pre tzv. „Live“ dotazy (metódami ako v prípade Table) • Má podporu pre vykonanie modifikácie záznamov v DBS • Je dôležitým komponentom pre vývoj aplikácii pracujúcich nad vzdialenými databázami v prostredí klient/Server
Komponent StorageProc • Komponent zastupuje uloženú procedúru na databázovom serveri • Poskytuje metódy pre: • zadávanie vstupných parametrov • Spustenie procedúry na databázovom serveri • Získanie výstupnej hodnoty prípadne spracovanie návratovej množiny záznamov (ako pri príkaze SELECT)
Komponent UpdateSQL • Poskytuje možnosť, prostredníctvom SQL editovať tzv. read-only objekty databázy reprezentované komponentmi Query a StorageProc • Pre objekt sa definujú parametrické príkazy pre modifikáciu INSERT, UPDATE, DELETE • Objekt triedy TUpdateSQL sa prepája s príslušným dataset objektom • Komponent poskytuje metódy pre nastavenie parametrov editovacích príkazov • Nastavenie a samotné spustenie príkazov sa vykonáva pri vzniknutí udalosti ApplyUpdate v príslušnom dataset objekte • Použitie komponenty je možné v prípade nastavenia vlastnosti dataset objektu CachedUpdate
Komponent TDatabase • Rozhranie pre riadenie spojenia nad jednou databázou • Poskytuje: • Perzistentné databázové spojenie • Prispôsobiť prihlasovanie do databázy • Riadenie transakcii • Definovanie parametrov spojenia s databázou (zadanie ovládača, lokálizáciu databázy...)
Ostatné BDE komponenty: • TBatchQuery – komponent pre vykonávanie operácie nad skupinou záznamov alebo celou tabuľkou (pridávanie záznamov, mazanie záznamov, kopírovanie dátovej sady) • TSession – komponent pre globálne riadenie skupiny databázových spojení z aplikácie (štandardne komponenty používajú session definovanej BDE administrátorom)
Zobrazenie a riadenie dát: Data-Aware komponenty • Komponenty pre zobrazenie a interaktívne riadenie dát databázy z aplikácie • Vizuálne komponenty, slúžia na tvorbu užívateľských formulárov • Poskytujú prostriedky pre formátovanie výstupu • Majú definované udalosti, ktoré možno ošetriť • Každá komponenta sa prepája z dátovým zdrojom, nad ktorým bude pracovať (TDataSource) • Rôzne komponenty, môžu pracovať s rovnakým zdrojom – rôzne pohľady na dáta
Tabuľka – DBGrid • Umožňuje zobrazovať a editovať dáta v tabuľkovej forme • formátuje výstupné hodnoty (písmo, farba, zarovnanie...) • Poskytuje množstvo volieb ovplyvňujúce správanie komponenty v aplikácii (zobrazenie mriežky, zobrazenie indikátora, rolovacích líšt...) • Umožňuje pohyb po záznamoch – posun v rámci dátového zdroja (scrollovanie) • Označovanie záznamov (výber iba jedného záznamu, viacnásobné označenie) • Udalosti pre ošetrenie vstupu na úroveň bunky (OnCellClick, OnTitleClick, OnColEnter, OnColExit,...) • Možnosť vlastného zobrazenia bunky (vykreslenie obrázku) • Zobrazovanie stĺpcov dátového zdroja je vykonávaná automatický na základe metadát alebo voliteľne definovateľné
Navigácia – DBNavigator • Sada navigačných tlačidiel, umožňujúca interaktívne vykonávať posun po záznamoch dátového zdroja - nasledujúci, predchadzajúci, prvý, posledný záznam • Tlačidla, ktorá prepínajú mód dátového zdroja do módu Insert, Edit, Browse (New, Edit, Post, Cancel) • Tlačidlo pre odstránenie záznamu (delete) • Tlačidlo pre znovunačítanie dátového zdroja (refresh) • Povolenie a zakázanie prístupu k tlačidlám je riadenie automatický • Zobrazenie tlačidiel je nastaviteľné
Data-Aware komponenty pre text • Komponenty pre zobrazenie hodnoty jedného stĺpca aktuálneho záznamu z dátového zdroja • DBEdit – Edit box pre zobrazenie a editáciu stĺpca aktuálneho záznamu • DBLabel – Zobrazenie hodnoty stĺpca vo forme voľného textu z aktuálneho záznamu
Data-Aware komponenty s výberom hodnôt • Komponenty zobrazujú hodnotu jedného stĺpca, pre editáciu umožňujú dosadiť hodnotu výberom zo zoznamu • DBComboBox/ DBListBox –výber a dosadenie hodnoty z preddefinovaných konštantných hodnôt • DBLookupComboBox/DBLookupListBox – výber dosadenie hodnoty zo sekundárneho zdroja dát (prepojenie cez kľúč)
Data-Aware komponenty pre prácu s BLOB hodnotami • Komponenty umožňujú spracovať BLOB hodnoty a dlhé reťazcové hodnoty • DBMemo – reprezentuje viacriadkový edit box pre spracovanie textu • DBRichEdit - reprezentuje viacriadkový edit box pre spracovanie formátovaného textu (rich text) • DBImage – reprezentuje grafický obrázok uložený v databáze ako BLOB. Štandardne umožňuje vkladať obrázky prostredníctvom shránky
Podporné Data-Aware komponenty • DBChart – Komponent pre zobrazenie dát z dátového zdroja do grafu • DBCtrlGrid – opakovane zobrazuje záznamy z dátového zdroja podľa voľného rozloženia formulárových komponentov (vo forme tabuľky). Komponenta DBCtrlGrid sa napája na dátový zdroj a umiestnené komponenty sa viažu k tomuto zdroju
Tvorba tlačových zozstáv: Quick Report komponenty • QuickReport balík je sada komponentov určená pre tvorbu tlačových zostáv • Poskytuje komponenty: • Pre definovanie rozloženia a riadenia – rozvrhnutia položiek na papieri • Komponenty pre tlač • komponenty pre export
Komponent QuickRep • je kontajnerom pre všetky tlačové komponenty, ktoré participujú v zostave • predstavuje papier, kde je definované rozvrhnutie položiek • Je prepojená s príslušnou dátovou sadou • Tlačový priestor sa delí na logické oddiely – zóny (bands), v ktorých je definované riadenie a rozvrhnutie tlačových komponentov • Obsah tlačovej zostavy môže byť členený na stĺpce (štandardné sa používa jednostĺpcová zostava) • Zóny (bands) sú samostatné kontajnerové komponenty rôznych typov. Typ určuje pravidla pre generovanie obsahu v danej časti (zóne) tlačovej zostavy
Zóny zostavy • QRBand – všeobecný typ pre zónu. Pri návrhu, po uložení komponenty sa určí je typ – rola v zostave • QRSubDetail – slúži pre tvorbu master/detail zostavy • QRStringsBand – Poskytuje mechanizmus na zobrazenie dát bez použitia DataSet. Obaľuje triedu TString, uchovávajúca zoznam reťazcov, ktorú sú zdrojom dát • QRGroup – slúži pre zoskupovanie záznamov na základe definovaného výrazu. Záznam bude vytlačený, vždy keď sa dôjde zmene jeho hodnoty • QRChildBand – slúži pre rozšírenie existujúcej zóny. Jej obsah bude vždy uložený pod obsahom rodičovskej zóny.
QRBand – typy zón • rbPageHeader – Tlačí sa vo vrchnej časti každej stránky (tlač na prvej stránky je možné zrušiť) • rbPageFooter – Tlačí sa v spodnej časti každej stránky (tlač na poslednej je možné zrušiť) • rbTitle – Tlačí sa na prvej stránke zostavy po vytlačení hlavičky • rbColumnHeader– Tlačí sa nad každým stĺpcom a na každej stránke vo viacstĺpcovej zostave. V jednostĺpcovej zostave sa tlačí raz po hlavičke stránky • rbGroupHeader – Hlavička pre zónu TQRGroup alebo TQRSubDetail. Hlavička sa tlačí pred príslušnou zónou • rbGroupFooter - Päta pre zónu TQRGroup alebo TQRSubDetail. Tlačí sa pod príslušnou zónou • rbDetail – Tlačí sa pre každý záznam z pripojenej dátovej sady. • rbSummary– Tlačí sa na konci zostavy po vytlačení všetkých zón typu rbDetail a rbGroupFooter
Tlačové komponenty pre zostavy • QuickReport tlačové komponenty sú ekvivalentné štandardnými komponentmi požívané pre tvorbu formulárov • Komponenty sú ukladané do QuickRep zón (Bands) • Data-aware QuickReport komponenty: • TQRDBText – Ekvivalent k TDBText – používa sa na zobrazenie obsahu poľa (text, číslo, dátum,...) zo záznamu pripojenej dátovej sady. • TQRDBRichText – slúži pre zobrazenie formátovaného textu uloženého v poli typu BLOB (RTF formát) • TQRDBImage - slúži pre zobrazenie grafického obrázku uloženého v poli typu BLOB • TQRExpr – zobrazenie výrazu vytvoreného z hodnôt poli záznamu z databázy • QRExprMemo – zloženie QRMemo a QRExpr. Umožňuje to textu vkladať hodnoty vo forme {výrazu}
QuickReport doplnkové tlačové komponenty • QRLabel – statický text na stránke • QRSysData – zobrazenie systémových údajov (aktuálny dátum, čas, číslo stránky...) • QRMemo– ekvivalent k TMemo, zobrazuje statický viacriadkový text • QRRichText – zobrazuje formátovaný • QRShape – „dekoračný“ komponent pre zobrazenie geometrických útvarov (ekvivalent k TShape) • QRImage – zobrazuje statický grafický obrázok na stránke (ekvivalent k TImage)
Komponenty pre prezeranie, skladanie a exporovanie • QRCompositeReport – zjednocuje separátne tlačové zostavy pre spoločnú tlač. • QRPreview – komponent umožňujúci vložiť do programu podporu pre predbežné prezeranie výstupu zo zostavy • Exportné filtre – QuickReport paleta má tri komponenty, podporujúce export obsahu zostavy do súboru. Exportovať zo zostavy je možné iba obsah komponent, ktoré produkujú text: TQRLabel, TQRDBText, TQRExpr, TQRMemo, TQRSysdata a TQRExprMemo • QRTextFilter – exportuje obsah zostavy do ASCII, kde jednotlivé hodnoty sú oddelené medzerou • QRCSVFilter – exportuje obsah zostavy do CSV formátu (Comma Separated Variables). • QRHTMLFilter – exportuje obsah zostavy do HTML formátu • QRChart – komponent pre vytvorenie grafu v zostave (odvodený od TChart)