CES 2004 - Vitajte na stránkach www.einsty.hostujem.sk
CES 2004 - Vitajte na stránkach www.einsty.hostujem.sk
CES 2004 - Vitajte na stránkach www.einsty.hostujem.sk
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
P R O G R A M U J E M EDelfinárium III.5. závereèná èas: Dodávka a inštaláciaAni sme sa ne<strong>na</strong>zdali a je tu závereèná èas seriálu o Advantage Local Serveri. Jej náplòoubude oboznámenie sa so základnými komponentmi Delphi pracujúcimi so serveromAdvantage Local/Database. Napíšeme si ve¾mi jednoduchý ukákový program, ktorý sisám vytvorí potrebný alias, aby sa mohol bez akéhoko¾vek zásahu spusti <strong>na</strong> poèítaèipouívate¾a/zákazníka. Takisto si povieme nieèo o súboroch, ktoré musia by distribuova−né spolu s <strong>na</strong>šou aplikáciou.AKO JE TO S KOMPONENTMI? Komponenty pracujúce s Advantage Local/Data−base Serverom sú <strong>na</strong> 90 % podobné štandardným databázovým komponentom z Delphi,a to vrátane <strong>na</strong>dväznosti <strong>na</strong> komponent TDataSet. Názvy štyroch <strong>na</strong>jzákladnejších kompo−nentov hovoria v podstate samy za seba: TAdsConnection, TAdsTable, TAdsQuery, TAds−StoredProc. Okrem toho sú k dispozícii ešte komponenty TAdsSettings a TAdsDictio<strong>na</strong>ry,ktoré sú výluène pre pokroèilých a slúia <strong>na</strong> údrbu databázy. V ukákovom programe,ktorý si <strong>na</strong>píšeme, pouijeme iba tie <strong>na</strong>jzákladnejšie komponenty, menovite TAdsCon−nection (obdoba TDatabase) a TAdsTable.UKÁKOVÝ PROGRAM. Demoaplikácia, ktorú vytvoríme, bude v podstate extrémnejednoduchý kninièný program, schopný evidova èitate¾ov a vypoièané tituly. Sklada sabude z jedného jediného ok<strong>na</strong>, <strong>na</strong> ktoré budeme pre jednoduchos umiestòova všetkydatabázové komponenty – pouitie dátového modulu je pri takomto type programu úpl−ne zbytoèné.Vytvoríme teda novú aplikáciu a <strong>na</strong> hlavný formulár umiestnime komponent TAds−Connection, ktorý <strong>na</strong>zveme Kniznice. Prvou dôleitou vlastnosou je AdsServerTypes,ktorá urèuje typ pripojenia <strong>na</strong> databázu. Na výber máme tri monosti: stADS_REMOTE,stADS_LOCAL a stADS_AIS. V struènosti ide o to, e komponent sa môe striedavo pripá−ja <strong>na</strong> Local, prípade Database/Internet server. My však pracujeme iba s Local serverom, atak <strong>na</strong>stavíme stADS_LOCAL <strong>na</strong> true a ostatné všetko <strong>na</strong> false.Druhou dôleitou vlastnosou je AliasName. Z jej názvu je zrejmé, o èo ide, take sa onej nebudem príliš rozpisova. Jednoducho staèí, keï z rozba¾ovacieho zoz<strong>na</strong>mu vyberie−te alias vašej databázy.Poslednými dvoma k¾úèovými vlastnosami sú IsConnected a LoginPrompt. Pomocoutej prvej sa pripojíte k databáze a tá druhá zabezpeèí, aby vaša aplikácia nezobrazovalaprihlasovacie dialógové okno v prípade, e databáza prihlasovanie nevyaduje. Nastavímeju preto <strong>na</strong> false.Pripojenie k databáze je <strong>na</strong> svete, potrebujeme však ešte rozmiestni tabu¾ky, tedakomponenty TAdsTable. Ako prvú si vezmeme <strong>na</strong> mušku tabu¾ku s èitate¾mi, ktorú <strong>na</strong>zve−me Osoby. Vlastnos AdsConnection <strong>na</strong>stavíme <strong>na</strong> Kniznica, TableName <strong>na</strong>stavíme <strong>na</strong>Osoby a tabu¾ku môeme slávnostne otvori. Potom nám ostáva u iba vlastnos Index−Name <strong>na</strong> Meno, keïe zoz<strong>na</strong>m èitate¾ov by sme pod¾a monosti chceli ma abecednezoradený. Aby bola rodi<strong>na</strong> kompletná, pridáme ešte komponenty TDataSource, TDBGrida TDBNavigator, èím sme prakticky dokonèili prvú èas programu.Druhá èas nebude o niè zloitejšia. V prvom rade treba prida nový komponentTAdsTable, ktorý <strong>na</strong>zveme Vypozicky. Podobne ako v predchádzajúcom prípade vlastnosAdsConnection <strong>na</strong>stavíme <strong>na</strong> Kniznica a TableName <strong>na</strong>stavíme <strong>na</strong> Vypozicky. Aby medzitabu¾kami Osoby a Vypozicky správne fungoval vzah master/detail, treba vlastnos Index−Name <strong>na</strong>stavi <strong>na</strong> IdOsoby – a po tejto úprave dovolí Delphi <strong>na</strong>stavi vlastnos Master−Source <strong>na</strong> dsOsoby a MasterFields <strong>na</strong> IdOsoby. Po týchto úpravách môeme tabu¾ku bezobáv otvori. Potom pridáme komponenty TDataSource, TDBGrid a TDBNavigator, ko−neènú podobu programu znázoròuje obrázok è. 1.Ïalším krokom bude presun <strong>na</strong>šej databázy do iného adresára (<strong>na</strong> zaèiatku seriálu smeju toti vytvorili v koreòovom adresári di<strong>sk</strong>u C:\). Osobne by som odporúèal v adresárinášho programu vytvori podadresár Data a presunú tam celú databázu. Podstatne satým zjednoduší generovanie inicializaèného súboru ADS.INI: <strong>na</strong>ša aplikácia iba zistí, vakom adresári sa <strong>na</strong>chádza súbor EXE, k tomu pridá reazec "Data" a kompletnú cestu kdatabáze máme po<strong>sk</strong>ladanú. Èo sa týka štruktúry inicializaèného súboru, tá je ve¾mi jed−noduchá: staèí vytvori sekciu [DATABASES] a v nej uvádza názvy aliasov vo formátealias=cesta. Za cestou ešte musí <strong>na</strong>sledova bodkoèiarka a písmeno D, ktoré z<strong>na</strong>mená, eide o alias <strong>na</strong>pojený <strong>na</strong> Advantage Data Dictio<strong>na</strong>ry, <strong>na</strong>príklad:[Databases]testDB=C:\testDB\TESTDB.ADD;DAby všetko prebehlo korektne, musíme upravi inicializaènú rutinu programu takto:program kniznica;usesForms,inifiles, SysUtils,Unit1 in 'Unit1.pas' {Form1};{$R *.RES}varini: TINIFile;beginini := TIniFile.Create(ExtractFilePath(Application.ExeName) + '\ads.ini');tryini.WriteString('Databases','testDB',ExtractFilePath(Application.ExeName) +'Data\testDB.add;D');fi<strong>na</strong>llyini.Free;end;//tryApplication.Initialize;Application.CreateForm(TForm1, Form1);Application.Run;end.Jedno malé upozornenie: majte <strong>na</strong> pamäti, e inicializaèný súbor sa vytvorí iba raz.Preto ak budete experimentova, zmate ho pred kadým spustením programu, v opaè−nom prípade sa toti môe sta, e do neho v dôsledku pokusov pribudnú rôzne neplat−né sekcie.Obr. 1DISTRIBÚCIA. Pokia¾ ste pri inštalácii komponentov nemenili cie¾ový adresár, <strong>na</strong>inšta−lovali sa do adresára C:\ADS. V tomto adresári sa <strong>na</strong>chádza podadresár Redistribute obsa−hujúci súbory, ktoré musíme distribuova spolu s <strong>na</strong>šou aplikáciou: ace32.dll. Advantage Client Engine DLL. Základná klient<strong>sk</strong>a DLL pre Windows. adsloc32.dll. Kninica DLL obsahujúca Advantage Local Server. adslocal.cfg. Konfiguraèný súbor pre Advantage Local Server. extend.chr. Advantage Local Server vyuíva tento súbor pri práci s medzinárodnouz<strong>na</strong>kovou súpravou. Pokia¾ nebude vaša aplikácia kompletne v angliètine vrátane dát,budete ho potrebova. ansi.chr. Advantage Local Server potrebuje tento súbor pri práci so z<strong>na</strong>kovousúpravou ANSI.Hoci v spomenutom adresári sa <strong>na</strong>chádza aj súbor axcws32.dll, <strong>na</strong> ten môeme pokoj−ne zabudnú, pretoe ho vyuijeme iba pri práci s Advantage Database Serverom. Keïemy pracujeme len s Local Serverom, nie je uvedený súbor potrebný.Èo sa týka umiestnenia spomenutých súborov <strong>na</strong> poèítaèi pouívate¾a, teoreticky môuby aj v systémovom adresári, no <strong>na</strong>jistejšie je umiestni ich do toho istého adresára, vktorom je aj spustite¾ný súbor <strong>na</strong>šej aplikácie. Dôvod je ve¾mi jednoduchý, keby sme data−bázový stroj zdie¾ali, hrozilo by to isté, preèo mnoho ¾udí zavrhlo BDE: konflikty verzií.Inicializaèný súbor ADS.INI je tie lepšie umiestni do adresára s aplikáciou.ZÁVER. A je tu záver seriálu. Neostáva mi niè iné ako popria vám ve¾a úspešných apli−kácií, zaloených <strong>na</strong> Advantage Local alebo dokonca Database serveri. Zaèiatoèníkomodporúèam, aby sa v prípade problémov nevzdávali, pretoe lepší databázový stroj nájdulen ako. elám vám ve¾a úspechov v uplatòovaní nových vedomostí.Ivan Zernovác ml.154 PC REVUE 2/<strong>2004</strong>