P R O G R A M U J E M EMalé ve¾ké databázy II. / 7. èasVráme sa <strong>na</strong> chví¾u k 13. èasti I. série seriálu. Hovorili smeo moných spôsoboch, ako sa dá pristupova k dátam <strong>na</strong>SQL serveri. Rozobrali sme si jednotlivé vetvy A, B a C.Vetva A rieši priame pripojenie pomocou front−end apli−kácie, ktorou je <strong>na</strong>pr. nám dobre známy mysql monitor.Touto vetvou sme sa zaoberali <strong>na</strong> zaèiatku. Vetva B opisu−je pripojenie pomocou PHP a HTTP servera, èo sme riešilinedávno. Vetva C sa zaoberá prístupom k dátam, ktoré súïalej spracúvané konkrétnou <strong>na</strong>tívnou aplikáciou. Toumôe by <strong>na</strong>pr. aplikácia <strong>na</strong>písaná v niektorom vyššomprogramovacom jazyku, ktorý `umoòujepouíva príkazySQL, <strong>na</strong>pr. Delphi, Visual Basic a pod. Ale takou aplikácioumôe by aj MS Excel. A tak si dnes ukáeme, ako sa dajúdáta, uloené niekde <strong>na</strong> inom, hoci aj vzdialenom MySQLserveri beiacom <strong>na</strong> Linuxe, nádherne pripoji do listuprogramu MS Excel. A aby to bolo efektnejšie, vytvorímesi z takto zí<strong>sk</strong>aných dát aj pekný graf. Viem, e tentorazasi pravých linuxákov nezaujmem, no ale povedzte, nepo−teší sa takému výsledku váš šéf?ODBC. Povedali sme si, e <strong>na</strong>tív<strong>na</strong> aplikácia môe ko−munikova s (¾ubovo¾ným) SQL serverom dvojakým spôso−bom: priamo, teda vyuívaním API funkcií daného SQL servera nepriamo, pomocou ODBCPre ilustráciu si predstavme aplikáciu MS Excel, ktorá vie(v spolupráci s MS Query, ktorá je súèasou) zadáva príka−zy SQL. Z poh¾adu Excelu mu je úprimne jedno, <strong>na</strong> ktorý SQLserver sa má pripoji, pretoe pouíva bené normalizovanépríkazy SQL. To, kam sa pripojí, mu zabezpeèí urèitý spro−stredkovate¾, a tým je ODBC. ODBC – Open DataBase Con−nectivity – je urèitý štandard, ktorý zabezpeèuje ¾ubovo¾nejaplikácii spojenie a pouívanie príkazov SQL. Kadý výrobcaSQL servera produkuje aj vlastný ODBC driver, ktorý zabez−peèí komunikáciu aplikácie práve len s jeho serverom.MYODBC. Preto aj MySQL server má ODBC driver (preWin95/98 a WinNT). Jeho úlohou je prevzia od <strong>na</strong>tívnejaplikácie príkazy SQL a pretransformova ich do takej po−doby, aby im rozumel MySQL server.Ak sme pozorne èítali, zistíme, e ak budeme v <strong>na</strong>šej apli−kácii, vytvorenej <strong>na</strong>pr. v Delphi, Visual Basicu alebo dokoncav MS Accesse, pouíva štandardné príkazy SQL, môemejednoducho tú istú aplikáciu poui v spojení s ¾ubovo¾nýmSQL serverom. Staèí, ak pouijeme príslušný ODBC driver(ovládaè) daného SQL servera. Túto výhodu pouívajú mnohíprogramátori, lebo nemusia prácne upravova svoje apliká−cie. My sa však vrátime k nášmu MySQL serveru.INŠTALÁCIA MYODBC. Aby sme mohli v apliká−ciách pouíva ODBC driver, musíme ho <strong>na</strong>jprv <strong>na</strong>inštalova.Vyberieme si ten typ, ktorý je urèený pre náš operaèný sys−tém. Pre Windows 95/98 je to jeden typ, pre Windows NTzase druhý typ. Obidva si môete stiahnu z mojej webovejstránky <strong>www</strong>.mior.host .<strong>sk</strong>. Princíp inštalácie je ve¾mi podob−ný a prípadné rozdiely <strong>sk</strong>úsený pouívate¾ Windows NTvyrieši sám, preto sa budem venova iba verzii pre Windows95/98. A aby sme to mali akési ucelenejšie, poïme <strong>na</strong> tospolu metódou postupných krokov:1. Po stiahnutí príslušného drivera MyODBC v zazipova−nom tvare ho rozbalíme do pomocného adresára2. V tomto adresári spustíme program SETUP3. Na obrazovke sa objaví inštalátor ODBC. Nech vás nepre−kvapí, e je to Microsoft ODBC Setup utilita, budeme in−štalova MySQL ODBC driver verzie 2.5, tak ako to vidíme<strong>na</strong> obrázku è. 1.Obr. 1 Obr. 2 Obr. 3Obr. 4Obr. 5 Obr. 6Obr. 7Obr. 8 Obr. 91/2002 PC REVUE 113
P R O G R A M U J E M EObr. 104. Klikneme <strong>na</strong> Continue a v okne Install drives kliknutímzvýrazníme poloku MySQL (Ak tak neurobíme, driver preMySQL sa ne<strong>na</strong>inštaluje a my budeme h¾ada chybu). Pozriobr. è. 2.5. Po prebehnutí inštalácie sa obrazí <strong>na</strong> obrazovke obr. è.3. Týmto bodom sa ukonèí pomerne nudná èas inštalácieODBC drivera (ovládaèa).6. Potom môeme pomocný adresár zmaza, aby zbytoè−ne nezaberal miesto, a samotný zazipovaný súbor MyOBDCsi odloíme (èlovek nikdy nevie...).7. Teraz musíme vyko<strong>na</strong> <strong>na</strong>stavenie ODBC drivera. To urobí−me takto: Prejdeme do menu Štart – Nastavenia – Ovlá−dacie panely a poh¾adáme ikonku s názvom 32bit ODBC.Klikneme <strong>na</strong> túto ikonku a zobrazí sa okno ODBC DataSource Administrator. Na záloke s názvom User DSNvidíme názvy User Data Sources (pouívate¾<strong>sk</strong>é dátovézdroje). Ak prebehla inštalácia MyODBC drivera v poriad−ku, mali by sme tu uvidie dátový zdroj s názvom sam−ple−MySql s driverom MySQL. Toto je príklad pouívate¾−<strong>sk</strong>ého dátového zdroja, ktorý sa vytvoril pri inštalácii MyODBCdrivera. Ak stlaèíme tlaèidlo Configure..., môeme si pre−zrie jeho <strong>na</strong>stavenia. Odporúèam tento príklad ponechaako vzor. My si vytvoríme vlastný pouívate¾<strong>sk</strong>ý dátovýzdroj. Preto klikneme <strong>na</strong> tlaèidlo Add a zobrazí sa ïalšieokno s názvom Create New Data Source (obr. è. 4).8. V okne sa zobrazí zoz<strong>na</strong>m nieko¾kých driverov, hlavne odfirmy Microsoft, ktoré u boli <strong>na</strong>inštalované súèasne s in−štaláciou operaèného systému, ako <strong>na</strong>pr. Microsoft AccessDriver, Microsoft dBase Driver a podobne. Zároveò sa tam<strong>na</strong>chádza <strong>na</strong>mi poadovaný MySQL driver. Presunieme <strong>na</strong>òkurzor myši a kliknutím ho zvýrazníme, èím sme selektovali,e sa ïalej budeme zaobera práve týmto driverom.Klikneme <strong>na</strong> Dokonèi a objaví sa konfiguraèný formulármysql drivera – obr. è. 5. Vyplníme jednotlivé poloky takto(toto je moja inštalácia, vy si ju prispôsobte pod¾a seba):Prvý riadok je Windows DSN <strong>na</strong>me – zvolíme¾ubovo¾né meno, <strong>na</strong>pr. linsql. V druhom riadku vyplnímemeno alebo IP adresu poèítaèa, <strong>na</strong> ktorom beí MySQLserver. Ak beí server <strong>na</strong> tom istom poèítaèi, kde je ajspustená klient<strong>sk</strong>a aplikácia, zadáme localhost, ak beíserver inde, zadáme meno alebo IP adresu konkrétnehopoèítaèa. (Mne beí MySQL server <strong>na</strong> Linuxe a Excel <strong>na</strong>inom stroji a nepouívam DNS – nemýli s DSN!!! –, pretosom zadal IP adresu Linuxu.) V treom riadku MySQLdatabase <strong>na</strong>me zadáme názov databázy, z ktorej bude−me èerpa dáta. Jej meno si zvolíme pod¾a <strong>na</strong>šej potreby,<strong>na</strong>pr. pcrevue. Zostáva vyplni meno pouívate¾a User, èomusí by meno, ktoré MySQL databáza pozná a má prí−slušné prístupové práva. V poloke Password zadámeheslo zadaného pouívate¾a. Vidíte, e je <strong>sk</strong>ryté pod hviez−dièkami, aby ho nikto nemohol odpozorova. Ostatnépoloky nevyplòujeme, ak sme, pravda, nespustili MySQLserver v špeciálnom reime. Naše <strong>na</strong>stavenia potvrdímekliknutím <strong>na</strong> tlaèidlo OK. Zobrazí sa okno ODBC DataSource Administrator a vidíme, e pribudol <strong>na</strong>mi defino−vaný pouívate¾<strong>sk</strong>ý zdroj s názvom linsql, pracujúci s dri−verom MySQL – obr. è. 6. Tým sme ukonèili inštaláciu a<strong>na</strong>stavenie ODBC drivera pre MySQL server.VYTVORENIE VZOROVEJ TABU¼KY. Abysme si mohli ukáza èinnos ODBC drivera v praxi, vytvo−ríme si vzorovú databázu a tabu¾ku. Zaèneme vytvorenímdatabázy, ktorú pomenujeme rov<strong>na</strong>ko, ako sme jej menozadefinovali v <strong>na</strong>stavení drivera, teda pcrevue. (Samo−zrejme, môete si meno zmeni.) Potom v tejto databázevytvoríme tabu¾ku s ¾ubovo¾ným názvom, <strong>na</strong>pr. tabulka1.Bude obsahova údaje o predaji súèiastok za rok 2000, ulo−ené v dvoch ståpcoch mesiac a pocet. Jej obsah by mo−hol vyzera takto:mesiac pocetjanuár 159február 256marec 456apríl 423máj 359jún 223júl 156august 623september 265október 121november 226december 452Ako sa taká databáza a tabu¾ka vytvorí, to u, samozrej−me, dobre vieme, ale ak sa vám ju nechce ruène <strong>na</strong>påòa, mô−ete poui <strong>sk</strong>ript, ktorý nájdete <strong>na</strong> mojej webovej stránke.KLIENT. Ako sme si u povedali, klientom komuniku−júcim s MySQL serverom cez MyODBC driver môe by¾ubovo¾ná aplikácia, schopná pouíva klasické príkazySQL. Takou bude v <strong>na</strong>šej ukáke aj MS Excel. Ten vie po−mocou MS Query vola príslušný ODBC driver a posla mupríkaz SQL. Výsledok príkazu dokáe spracova a zobrazivo svojom liste. Spusme MS Excel. Kliknime <strong>na</strong> menu Dáta– Naèíta externé dáta – Vytvori nový dopyt (obr. è. 7).Obr. 11Obr. 12Obr. 13Otvorí sa okno Zvoli zdroj dát. Kliknutím zvýraznímepoloku a stlaèíme OK. Objaví sa novéokno Vytvori nový zdroj dát – obr. è. 8. Zaènemevypåòa jednotlivé riadky. Do prvého zadáme ¾ubovo¾nýnázov zdroja dát, <strong>na</strong>pr. graf1. V druhom riadku klikneme<strong>na</strong> rozba¾ovaciu šípku, kde sa rozbalí roletové menu sovládaèmi – drivermi pre jednotlivé databázy. Zo zoz<strong>na</strong>muvyberieme typ MySQL. Vrátime sa do prvého ok<strong>na</strong> a <strong>na</strong>treom riadku stlaèíme tlaèidlo Pripoji. Zobrazí sa uznámy formulár, tentoraz s názvom TDX mysql DriverConnect, ktorý vyplníme úplne presne ako v predchádza−júcom formulári. Ak nedodríme presnos vyplnenia, spo−jenie sa neu<strong>sk</strong>utoèní!!! (obr. è. 9).Obr. 14Po stlaèení tlaèidla OK savrátime do ok<strong>na</strong> Vytvori novýzdroj – obr. è. 10. Ak sa zobrazíokno s chybovou správou, nie−kde sme sa dopustili chyby, <strong>na</strong>j−pravdepodobnejšie sme nevy−plnili obidva formuláre ROV−NAKO!Ak však prebehne všetko vporiadku, ved¾a tlaèidla Pripojisa objaví názov databázy, doktorej sme sa zadaním vo for−mulári pripojili, teda v tomtoprípade pcrevue. Zároveò sa vo Obr. 15štvrtom riadku ponúknu názvytabuliek, uvedených v danej databáze. Stlaèíme tlaèid−lo OK.Objaví sa okno Sprievodca dopytom – vo¾ba ståpcov– obr. è. 11. V tomto okne zvolíme príslušnú tabu¾ku, vy−berieme poadované ståpce tabu¾ky (v <strong>na</strong>šom prípadeúplne všetky dva) a stlaèíme tlaèidlo Ïalší>.Objaví sa okno Sprievodca dopytom – filtrovanie dát(obr. è. 12). V tomto okne by sme mohli <strong>na</strong>stavova rôznefiltre, aby sme zí<strong>sk</strong>ali dáta, ktoré <strong>sk</strong>utoène potrebujeme.Pravda, v <strong>na</strong>šom ilustraènom príklade nepouijeme iad−ny filter, a preto stlaèíme Ïalší>.Objaví sa nové okno Sprievodca dopytom – dokon−èenie (obr. è. 13).Tu sa ponúka monos, èi rovno <strong>na</strong>èíta dáta do apli−kácie MS Excel alebo poui MS Query <strong>na</strong> ïalšiu úpravudát. My si vyberieme prvú monos a staèíme tlaèidloDokonèi. Objaví si ïalšie okno Vloenie externých dát –obr. è. 14.Vyberieme si, kam sa majú <strong>na</strong>mi iadané dáta uloi.Zase zvolíme prvú monos – uloenie do existujúceholistu. Môeme vybra bunku ¾avého horného rohu, kam sadáta <strong>na</strong>èítajú. Stlaèíme OK a dostaneme sa do listu Excelua dáta sú <strong>na</strong> svojom mieste – obr. è. 15. No èo, dobré,nie? Ale poznáte šéfov. Ich holé èísla nezaujímajú. A takmu pripravíme graf! Na ten si však budete musie poèkado <strong>na</strong>sledujúceho èísla.Miroslav Oravec114 PC REVUE 1/2002