Image
18.5.2016 0 Comments

Databázy II / 10.časť

Späť na úvod >> Späť na seriál

Aj tentoraz sa do tretice budeme venovať delfistom. Ostatní databázisti si však tiež môžu prečítať túto stať, možno v nej nájdu niekoľko inšpirujúcich podnetov. Veď filozofia programovania je rovnaká, iba príkazy a syntaktické zápisy sú v jednotlivých programovacích jazykoch odlišné.
Vráťme sa aspoň v myšlienkach k predchádzajúcim častiam. Vytvorili sme aplikáciu v Borland Delphi, ktorá je schopná prezerať a dopĺňať vybratú tabuľku v príslušnej databáze. Na spojenie s konkrétnym MySQL serverom bolo použité ODBC, v našom prípade MyODBC.
Výhody a nevýhody spojenia cez ODBC alebo spojenia priamo pomocou API (Application Programming Interface – aplikačné programovacie rozhranie) sme si vysvetlili nedávno. Teraz si ukážeme, ako aplikáciu využívajúcu API vytvoríme.
ČO POTREBUJEME. Ak sme v predošlých častiach potrebovali MyODBC, teraz môžeme naň zabudnúť. Naopak, budeme potrebovať API.
Ale ako také API vyzerá? API je pomyselné rozhranie, ktoré môže byť implementované rôznymi spôsobmi. Najčastejšie je to v tvare dynamickej knižnice, ktorá sa v systéme Windows označuje príponou .DLL (dynamic loaded library = dynamicky nahrávaná knižnica). „Oknoidní céčkari“ tieto knižnice veľmi dobre poznajú a veľmi často ich používajú. Aj delfisti majú svoje knižnice. Na „sieti sietí“ ich môžeme nájsť značné množstvo.

Obr. 1

Obr. 2

Obr. 3

Delphi je však produkt postavený na využívaní komponentov (vizuálnych či nevizuálnych), a preto aj my využijeme také API, ktoré je zakompilované v podobe komponentov. Aj tých je, samozrejme, obrovské množstvo. Ja som si z určitého dôvodu (ktorý pochopíte neskôr) vybral komponenty od firmy ZEOS. Sú to komponenty, ktoré sú distribuované pod licenciou GNU, a teda sú voľné a zadarmo. Príslušné komponenty si môžete stiahnuť z mojej webovej stránky www.mior.host.sk.

INŠTALUJEME ZEOS. Z internetu alebo uvedenej stránky si stiahneme balík komponentov pre prácu s databázami s názvom Zeos Database Objects - zeosdbo-5.3.0-beta5.zip. Tento balík komponentov je pre nás veľmi vhodný, lebo obsahuje komponenty pre Delphi 3, 4, 5, 6 a Kylix. Takže záleží už len na tom, ktorú verziu Delphi používame. Poďme na to metódou postupných krokov:

1.   Do ľubovoľného adresára, kde zvyčajne inštalujeme komponenty, rozbalíme obsah zipovaného súboru zeosdbo-5.3.0-beta5.zip. Vznikne adreár ZEOSDBO. V ňom sa nachádzajú ostatné podadresáre a inštalačné súbory. Prečítame si príslušné súbory readmeinstall.
2.   Súbor libmysql.dll, ktorý sa nachádza v rozzipovanom adresári, prekopírujeme do adresára Windows\System.
3.   Editujeme súbor zeos.inc. Tu odporúčam zmeniť maximálne položku o definícii jazyka, teda {$DEFINE CZECH}. Ostatné zbytočne nemeníme!
4.   V prostredí Delphi pridáme nastavenie cesty k príslušným súborom. Napríklad v Delphi 5 to urobíme takto:

a)   Spustíme Delphi
b)   Klikneme na položku menu Tools - Enviroment Options a v okne, ktoré sa objaví, otvoríme záložku Library (obr. č. 1).
c)   Klikneme na tlačidlo s tromi bodkami vpravo od riadka Library Path:, čím otvoríme ďalšie okno Directories s položkami Ordered List of Library paths: (obr. č. 2).
d)   Kliknutím na tlačidlo s tromi bodkami doplníme cesty k súborom komponentov ZEOSDBO v tomto poradí:

XXX, XXX\COMMONXXX\DBASE. XXX znamená úplnú cestu k adresáru ZEOSDBO, teda napr.: D:\Delphi_Komp\. Pomocou tlačidla Add takto doplníme všetky tri cesty. Výsledok vidíme na obr. č. 3.

Obr. 4

Obr. 5

e)   Stlačíme OK a vrátime sa do základnej obrazovky Delphi.

5.   Skompilujeme príslušné komponenty takto:

a)   V menu Delphi klikneme na File - Open, nájdeme prvú súpravu komponentov s názvom ZCommonX.dpk, kde X predstavuje číslo verzie komponentov pre konkrétnu verziu Delphi, teda v mojom prípade ZCommon5.dpk. Objaví sa okno balíčkovača Package (obr. č. 4)
b)   Klikneme na položku Compile a po úspešnej kompilácii na položku Install. Takto nainštalujeme aj ostatné komponenty presne v tomto poradí: ZDbwareX.dpkZMySqlX.dpk
c) Pozrieme sa, či sa nainštalovali všetky požadované komponenty na lištu komponent v Delphi – budú na konci lišty (obr. č. 5).

Obr. 6

Všimnime si, že sa naištalovalo týchto sedem komponentov:

  • TZBatchSQL
  • TZMonitor
  • TZUpdateSQL
  • TZMySQLDatabase
  • TZMySQLTransact
  • TZMySQLTable
  • TZMySQLQuery

Nezdajú sa nám názvy týchto komponentov veľmi podobné, ako sú na lište DataAccess?

Ale samozrejme, podobajú sa ako vajce vajcu, aj vlastnosti majú podobné, práve preto som si vybral túto súpravu komponentov ZEOS.

d)   V adresári ZEOSDBO je dostupná dokumentácia, ktorú je veľmi vhodné si prečítať – v tvare HTML.
e)   Môžeme ukončiť Delphi.

Obr. 7

Obr. 8

Obr. 9

Obr. 10

VYTVORENIE APLIKÁCIE. Podstata aplikácie, ktorú budeme dnes vytvárať, je podobná tej z minulej lekcie. Použijeme iba iné komponenty z lišty Zeos Access.
1.   Spustíme Delphi. Na formulár poukladáme jednotlivé komponenty z lišty Zeos Access:

  • ZMySQLDatabase1
  • ZMySQLQuery1
  • ZMySQLTransact1

a ostatné – nám už dobre známe – komponenty z predchádzajúcej lekcie: DataSource1, Edit1 Edit4, Label1 Label6, DBGrid1, DBNavigator1, Button1 a BitBtn1, tak ako je to na obr. č. 6.
2.   Nastavíme vlastnosti jednotlivých komponentov. Začneme komponentom ZMySQLDatabase, kde v Object Inspectore nastavíme vlastnosti tak, ako sú na obrázku č.19-7:

Samozrejme, že ich nastavíme podľa svojho prostredia, teda database (názov databázy), host (meno alebo IP adresa počítača), ako aj login (meno používateľa) či password (heslo) budú zodpovedať našim skutočnostiam.
3.   Pri komponete ZMySQLQuery sa zameriame na tieto vlastnosti:

  • Database
  • Transaction
  • Sql

tak ako je to na obrázku č. 8.
Pozrime sa na položku Sql. Aká bude? No predsa dobre známa select * from kniha.                    

4.   Komponent ZMySQLTransact nastavíme veľmi jednoducho a presne podľa obrázka č. 9.
5.   Ostatné komponenty sú rovnaké ako v predošlej časti.
6.   V tejto aplikácii je dôležitá úprava procedúry, ktorá sa vykoná po kliknutí na tlačidlo Ulož. Zdrojový text je v podstate veľmi podobný ako v predchádzajúcej časti, ale keďže sme použili namiesto komponentu Query komponent ZMySQLQuery, jednoducho upravíme názvy príkazov z Query na ZMySQLQuery takto:

procedure TForm1.Button1Click(Sender: TObject);
begin
   ZmySqlQuery1.Close;
   ZmySqlQuery1.SQL.Clear;
   ZmySqlQuery1.SQL.Add('insert into kniha(id, nazov, autor, vydavatel, cena) values('''', :nazov,       :autor, :vydavatel, :cena)');

   ZmySqlQuery1.ParamByName('nazov').AsString := Edit1.Text;
   ZmySqlQuery1.ParamByName('autor').AsString := Edit2.Text;
   ZmySqlQuery1.ParamByName('vydavatel').AsString := Edit3.Text;
   ZmySqlQuery1.ParamByName('cena').AsString := Edit4.Text;

   ZmySqlQuery1.ExecSQL;

   ZmySqlQuery1.SQL.Clear;
   ZmySqlQuery1.SQL.Add('select * from kniha');

   ZmySqlQuery1.Open;

   ZmySqlQuery1.Last;
   Edit1.Text:= '';
   Edit2.Text:= '';
   Edit3.Text:= '';
   Edit4.Text:= '0.00';
end;

7.   Skompilujeme takto vytvorenú aplikáciu. Po kompilácii vznikne súbor s menom PROJECT1.EXE (jeho meno môžeme, samozrejme, zmeniť). Ak tento súbor spustíme, objaví sa úvodné logovacie okno (obr. č. 10) a po správnom vyplnení mena a hesla sa aplikácia pripojí k prednastavenému MySQL serveru (v mojom prípade k počítaču s IP adresou 192.168.10.129), do stanovenej databázy (pcrevue) k danej tabuľke (KNIHA). Obsah tejto tabuľky sa zobrazí v mriežke – obr. č. 11.

Obr. 11

A môžeme pracovať.

ČO SME DOSIAHLI. Vytvorili sme aplikáciu, ktorá nie je závislá od MyODBC ovládača. Znalí delfisti by dokázali túto aplikáciu upraviť tak, aby vlastnosti komponentu ZMySQLDatabase, ako sú Database, Host, Login a Password, boli konfigurovateľné priamo v aplikácii, teda aby neboli trvalo zakompilované ako teraz, ale aby ich bolo možné nastavovať podľa aktuálnej situácie. Tak by sme dostali naozaj univerzálnu aplikáciu, nezávislú od prostredia, adresy MySQL servera a podobne. Toto však už nie je cieľom tohto seriálu. Zdrojové texty aplikácie je možné stiahnuť z mojej webovej stránky www.mior.host.sk.
Týmto sme ukončili strednú školu databáz. Naučili sme sa nielen ovládať MySQL server, vytvárať tabuľky, pridávať, mazať alebo upravovať záznamy z príkazového riadka, ale sme sa naučili pristupovať k dátam uloženým na serveri „z diaľky“, teda cez niektorú inú aplikáciu. A to sme si mohli dokonca vybrať, či použijeme možnosti ODBC alebo API. A naučili sme sa niečo z teórie databáz, ako sa navrhujú databázy, čo je to normalizácia a podobne.

ČO NÁS ČAKÁ. Ako dobrí a usilovní študenti nechceme zakrpatieť. Chceme sa naďalej rozvíjať, zlepšovať, naučiť niečo nové, aby sme boli medzi databázistami určitou špičkou. Preto postúpime na vysokú školu. A čo sa učí na takej vysokej škole? Najprv sa rozvinú znalosti zo strednej školy do hĺbky (možno by bolo správne v súlade s názvom školy povedať do výšky) a potom ešte niečo navyše. A tak sa pozrieme bližšie na indexy, ktoré majú svoju jedinečnú krásu, budeme sa venovať viacpoužívateľským aplikáciám – teda prípadu, keď k jednému zdroju dát pristupuje súčasne niekoľko používateľov. S tým je spojené zamykanie záznamov a podobné záležitosti. A aby sme sa nebáli o citlivé dáta, naučíme sa niečo z oblasti transakcií, replikácií a archivácie databáz.
A to najdôležitejšie: Prvý semester našej vysokej školy sa začína už na budúci mesiac.

OKREM INÉHO. Ako to vyznieva z vašich e-mailov, mnohým z vás učarovala možnosť používať MySQL na platforme Linuxu. Ale keďže ste sa (viacerí) doteraz venovali iba databázam a hlavne prostrediu Windows, neviete, ako vstúpiť do sveta Linuxu. Chýba vám akýsi návod, čo s tým a ako. Preto vás pozývam na Stretnutie s Linuxom, ktoré sa začne už od budúceho čísla na inom mieste PC REVUE (nahradí seriál o Sambe).

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

Ako na to

Ako zbaviť fotky hmly

08.12.2016 11:59

Hmla alebo dym sú často veľmi kreatívne nástroje. No všetkého veľa škodí. Fotka potom stráca kontrast a v podstate na nej nič nevidieť. Hmlu môžete neraz následnými úpravami odstrániť alebo zredukovať ...

Ako na to

Užitočné SW nástroje

08.12.2016 11:53

AllDup v4.0.3 Určenie: program na vyhľadávanie a odstraňovanie duplicitných súborov Vlastnosti: duplicitné súbory sa vyhľadávajú len na zvolených diskových jednotkách alebo len v rámci vybraných ...

Ako na to

Fotografovanie s bleskom

08.12.2016 11:47

Ak máte moderný fotoaparát so vstavaným alebo externým bleskom, zdá sa vám téma článku triviálna. Jednoducho nastavíte vhodný režim, vyberiete najlepšiu kompozíciu záberu, exponujete a o zvyšok sa už ...

Žiadne komentáre

Vyhľadávanie

Kyocera - prve-zariadenia-formatu-a4-s-vykonom-a3

Najnovšie videá