Google+ Followers

sobota 8. února 2014

Vývoj databázových aplikací I

Připojení k databázím

Vývojové nástroje Delphi a C++ Builder byly od počátku navrženy pro tvorbu podnikových aplikací, ke kterým neodmyslitelně patří i možnost spolupráce s databázovými stroji. Tak, jak se rozšiřovala nabídka databázových strojů, a měnily se požadavky uživatelů, byla do Delphi i C++ Builderu postupně implementována řada technologií pro přístup k relačním databázím.


Přínos DB komponent

S databázovým serverem by bylo samozřejmě možné komunikovat i přímo bez DB komponent. Jednotlivé databázové servery se však liší jak nabízenými funkcemi, tak i rozhraním, prostřednictvím kterého je možné tyto funkce volat. Server je většinou provozován na jiném stroji, často i na odlišném operačním systému. Dodavatelé tak spolu s DB serverem šíří zpravidla také klientské knihovny pro jednotlivé operační systémy a jejich verze. Klientské knihovny poskytují rozhraní (API) pro vývojáře aplikačního software. I tato rozhraní jsou však ještě příliš specifická. Vývojové nástroje společnosti Embarcadero proto nabízí DB komponenty a ovladače, které vývojáře odstíní od konkrétní implementace a umožňují jim vytvářet snadno přenositelné aplikace, provozovatelné s databázovými stroji různých dodavatelů.


FireDAC

FireDAC je souborem knihoven pro práci s daty získaný v únoru 2013 v rámci akvizice od ruské společnosti DA-Soft. Hlavními přínosy je možnost nasazení na různých platformách včetně mobilních zařízení, rychlost a zpřístupnění specifických funkcí jednotlivých databázových strojů. Spolu s vývojovými nástroji společnosti Embarcadero jsou stále dodávány i další technologie pro přístup k datům (především z důvodu zpětné kompatibility), FireDAC je však v tomto směru jednoznačně "vlajkovou lodí" a pro nové projekty by měl být preferovanou volbou.

FireDAC - Databázový "Hello World"

Než se podrobněji podíváme na jednotlivé komponenty, ukážeme si použití FireDAC komponent na nejjednodušším možném příkladu. Připojíme se k databázi, formulujeme SQL dotaz a zobrazíme získaná data. Na formulář umístíme následující komponenty:

FDConnection - nastavuje parametry připojení k databázi
FDQuery - slouží k definování SQL dotazu
DataSource - zprostředkovává přístup k datové sadě
DBGrid - datová mřížka pro zobrazení dat
DBNavigator - navigační lišta
FDGUIxWaitCursor - multiplatformní "přesýpací hodiny"
FDPhysIBDriverLink (databázový ovladač pro InterBase)



Za pomoci Inspektora objektů nastavíme základní vlastnosti pro jednotlivé komponenty:



Nastavení FDConnection.Params:
Server=localhost
User_Name=SYSDBA
Password=masterkey
CharacterSet=WIN1250
Database=C:\IBData\IBDEMODB.IB
DriverID=IB

Nastavení FDQuery.SQL:
select osoba_id, prijmeni, jmeno from osoba;


Konfigurace je plně totožná s BDE, což usnadňuje případnou migraci starších databázových aplikací.


Použití komponenty TADGUIxWaitCursor nebo přidání unity uADCompGUIx do uses je povinné pro každý projekt využívající technologii FireDAC. V případě, že projekt obsluhu kurzoru neobsahuje, skončí překlad aplikace selháním a je zobrazeno chybové hlášení.




Přiřazení ovladače je povinné pro všechny projekty využívající technologii FireDAC. Pokud není ovladač k aplikaci ani jedním z uvedených způsobů připojen, sestavování aplikace selže a zobrazí se chybové hlášení.




Porovnání FireDAC s ostatními knihovnami

BDE - Původní technologie společnosti Borland pro připojení k databázím. Od roku 2002 již není dále rozvíjena. Neobsahuje tak např. podporu unicode, 64-bitových Windows nebo platformy FireMonkey. BDE je dodáván s ohledem na údržbu starších aplikací, jeho použití v nových projektech se důrazně nedoporučuje.

dbGo (ADO) - Sada komponent zajišťujících přístup k databázím prostřednictvím technologie ActiveX Data Objects (ADO) společnosti Microsoft. Použitelnost je omezena pouze na operační systémy MS Windows.

InterBase Express (IBX) - specializované komponenty pro databázový stroj Interbase. Kromě připojení k DB a zajištění přístupu k datům obsahuje i podporu čiností spojených se správou serveru jako je např. zálohování a obnova dat.

dbExpress - Nástupce BDE uvedený cca v roce 2000 (Delphi 6). Od odstatních typů připojení se odlišuje použitím jednosměrných (unidirectional) datových sad. Výsledky dotazů nejsou automaticky ukládány do vyrovnávací paměti. Pro aktualizaci databáze je třeba použít komponentu "DataSetProvider" a zajistit ošetření případných konfliktů.



Vývojové nástroje Delphi, C++ Builder nebo RAD Studio jsou v současnosti dostupné v mnoha edicích. Jednou z oblastí, v kterých se dodávané edice liší je právě podpora vývoje databázových aplikací. Následující tabulka ukazuje, které technologie jsou v jednotlivých edicích dostupné:




Pro edice Professional je k dispozici balíček "FireDAC Client/Server Add-On Pack", který rozšiřuje možnosti připojení o přístup k databázím Oracle, SQL Server, InterBase, DB2, Firebird, SQLite, MySQL, PostgreSQL, SQL Anywhere, Advantage DB, Access, Informix, DataSnap a dalším.