Autor: Michal Pohorelsky
Uverejneno: New P+C 03/93, str. 5-7
Databaze pro Windows ? MS Access 1.0


Posledni obdobi tvurci aktivity venovali vyvojovi pracovnici firmy Microsoft predevsim systemu Windows a podpurnym nastrojum v jeho prostredi. Bylo az s podivem, jak dlouho se vyhybali nenasytnemu trhu databazovych aplikaci. Prvnim strategickym tahem na poli databazi bylo zakoupeni firmy Fox Software spolu s vykonnou verzi FoxPro 2.0. Ohlasenou verzi FoxPro 2.5, tentokrat i pro prostredi Windows, cekali vsichni fandove FoxPro velmi netrpelive. O to vetsi bylo prekvapeni, kdyz druhym strategickym tahem Microsoftu bylo uvedeni vlastni databaze Access, ktera byla na trh uvedena drive nez verze FoxPro 2.5. Databaze Access se do 31.1. 1993 prodavala za neuveritelnych 99 dolaru, u nas za 3200 korun.
Microsoft Access 1.0 je databazovy system urceny specialne pro Windows. To se hned od pocatku projevi v pozadavcich na hardware: procesor nejmene 386SX, 4 MB pameti a alespon 14 MB volneho prostoru na pevnem disku. V systemu muze byt otevrena jedina databaze - aplikace (oznaceni aplikace je vystiznejsi). Jedina Access databaze zahrnuje vsechny tabulky, jenz v nasem beznem pojeti predstavuji databaze. Do jednoho DOS souboru s priponou MDB jsou vedle udaju take zahrnuty vsechny ostatni objekty spojene s tabulkami. Protoze objekty neexistuji jako samostatne DOS soubory, muzeme je oznacovat nazvy dlouhymi az 64 znaku vcetne mezer.
Jak jsem jiz uvedl, zakladnim objektem, se kterym Access pracuje, je Table - tabulka. Jeji velikost je limitovana na 128 MB a obsahuje jednotlive rozdelene na polozky urceneho typu. Textove polozky jsou ve dvou typech - kratky text do 127 znaku nebo MEMO. Polozky pro DATUM mohou obsahovat datum nebo cas. Sverazne jsou polozky logicke. Misto bezneho True/False pouzivaji YES/NO nebo hodnotu -1 jako YES. Nejvetsi bohatstvi je u numerickych polozek. Ty mohou byt podle presnosti jako 1bytove, celociselne (2 byty), dlouhe celociselne (4 byty) nebo kratke a dlouhe s pohyblivou carkou.
Zvlastni typy numerickych polozek jsou Currency s presnosti 15+4 desetinna mista a Counter - jednoznacne cislo pridelovane novym zaznamum v databazi. Velmi obecnym typem polozky je objekt OLE (rezim OLE je novinkou Windows 3.1). Muze to byt graf, obrazek, nebo treba tabulka Excelu. Prijemnym pridavkem je program na kresleni grafu. Funguje pomoci OLE a je mozne jej pouzit z kazdeho programu, ktery OLE podporuje, treba uz z jednoducheho WRITE. Moznosti tohoto programu jsou temer stejne, jako jsou grafy programu EXCEL 3.0.
Ke kazde polozce tabulky lze urcit radu parametru. Krome komentare a formatu polozky to je jeji nazev pouzivany v nadpisech, popis polozky pro uzivatele, implicitni hodnota, vyraz urcujici pripustnost hodnoty a chybova zprava (pokud vstupni hodnota nevyhovuje).
Kazda tabulka musi mit hlavni indexovy klic, coz je polozka, podle ktere je cela tabulka setridena (symbol klice v tabulce). Hlavni klic muze tvorit nekolik polozek, ale nemuze byt urcen obecnym vyrazem a nejsou pro nej pripustne duplicity. Krome toho muze byt kazda polozka oznacena jako indexovana s moznosti nebo zakazem duplicit.
Kdyz jsem s databazi Access experimentoval, zjistil jsem, ze take lze urcit barvu, jakou se urcita polozka bude na obrazovce vypisovat. Novy soubor MDB, ktery obsahuje jedinou kratkou tabulku bez ostatnich objektu, ma velikost priblizne 65 KB. Okno GRAPHICAL QUERY BY EXAMPLE (GQBE) zobrazi v zahlavi struktury vybranych tabulek a definicni prehled podminek a specifikaci. Uzivatel provede obsluhu technikou vyber a presun (drag and drop). Napriklad kriterium pro spojovani tabulek je urceno vyberem polozky jedne tabulky a jejim presunutim na odpovidajici polozku spojovane tabulky. Vysledkem je cara, ktera spojuje urcene polozky v tabulkach. Urcene spojeni muzeme predefinovat. Do definicni tabulky muzeme urcit komplex WHERE podminek, vypocitavane polozky, specifikace skupin GROUP BY a doplnkove kriterium pro jejich vyber HAVING, poradi pro trideni, vypocet krizove tabulky atd. Proti pouhemu zobrazeni dovoluje vyber Accessu take skladani, aktualizaci a ruseni zaznamu.
SQL okno je prevedeno na ekvivaletni SQL prikaz. Kdyz modifikujeme SQL prikaz SQL prikaz, dochazi i k odpovidajici uprave SQL okna. Pri zmenach Access okamzite rozpozna chybna klicova slova. K osvezeni jmen tabulek a polozek musime vsak prikaz vyvolat. Vybrany vzorek dat je ulozen do dynamicke tabulky "dynaset", ktera je ve vybranych pripadech opravitelna. Tak muzeme snadno opravovat udaje u vyberu z jedne tabulky nebo pri relaci jedna ku jedne. V techto pripadech je prime spojeni mezi vybranou a matricni vetou. Lze konstatovat, ze muzeme opravovat hodnoty, ktere vychazeji z polozek a ne z transformaci.
Access ma moznost spoluprace s databazemi jinych typu. Zakladni moznosti je IMPORT - cizi databaze se prekonvertuje do databaze Accessu. Takto umi zpracovavat soubory ve formatech PARADOX 3.x, dBase III+ a IV, FoxPro 2.0, Excel, Lotus, Btrieve a SQL Server. Take si poradi s textovymi soubory v obou obvyklych podobach v kodu DOS i Windows. Vsechny tyto typy umi take pri EXPORTu a do urcite miry si poradi i s indexovymi soubory. Druhou zajimavejsi moznosti je ATTACH - cizi soubor neni preveden do Accessu, ale zustane vedle a je pouze zpristupnen. Tady je moznosti mene, protoze umi pouze dBase, Paradox, Btrieve a SQL Server. V pripojenych tabulkach neni mozne provadet zmeny struktur. Vse samozrejme ovlada i pro svuj vlastni format. Je neprijemne, ze vyhody pripojovani nelze obecne pouzit pro soubory FoxPro (pouze pro ty, ktere neobsahuji Memo polozky). Firma vsak slibuje doplnit driver FoxPro v kratke dobe po uvedeni Accessu na trh.

Formaty (Forms)

Ve formatech muzeme vyuzit OLE objekty a zajistit event-driven akce. Definice formatu se vice priblizuje definici sestavy, nez je tomu u FoxPro. I zde se setkame se tremi definicnimi pasmy, vcetne zahlavi a upati, ktera slouzi k zobrazeni titulku a souctu. Oddeleni header-footer se projevi pouze u hard copy, ale ne na obrazovce. Vytisknuti formatu predstavuje alternativu k report sestave. Snadno tak ziskame evidencni karty objektu v tabulce.
Muzeme navrhovat komplexy obrazovek a vytvaret formaty i pomoci vyberu. Na obrazovce se vedle hlavniho formatu mohou objevovat i subformaty. Pri spojovani tabulek Access sam urcuje spojovaci polozky i kdyz jsou v podrizenych tabulkach urceny primarni klice. V opacnem pripade musi uzivatel charakter spojeni urcit manualne.
Pro snadnejsi definici i formatu je k dispozici "Form WIZARD". Pro format nejprve vybereme tabulku. Nebo vyber a potom z nabidky zakladni grafickou formu: tabulku, graf, jednoduche sloupce a hlavni subformat. Zakladni nabidku vstupniho formatu Wizard pritom muzeme upravit. Rozmistenim prvku se prilis nelisi od generatoru FoxPro - Screen Builder. Prvky formatu jsou v terminologii Accessu nazyvany ovladace (controls). Zahrnuji vedle vstupnich polozek (input fields) jeste prepinace (toggle buttons), check boxes, navesti (labels), vykonna tlacitka (command buttons), seznamy (combo list). Seznamy mohou vyuzivat i vice sloupcu. Muzeme definovat i seznamy s moznosti pridat dalsi hodnotu. Ze specialniho nabidkoveho okna vybirame vsechny druhy ovladacu pomoci ikon. Graficky Wizard rovnez umoznuje definovat celkem 9 ruznych typu grafu.

Sestavy (Reports)

Pro usnadneni navrhu sestavy je opet k dispozici Report Wizard. S jeho pouzitim muzeme pripravit jednoduchou sloupcovou sestavu, souctovanou sestavu nebo etikety. Jestlize do report ovladace CONROL zapiseme vyraz, potom snadno ziskame v sestave vypocitavanou polozku. Kdyz je to zapotrebi, Report Wizard automaticky data usporada a rozdeli do skupin. Trideni muzeme samozrejme zajistit i jako soucast vyberu. Access sam rozpozna potrebu dvoupruchodoveho reportu. Pri souctovani muzeme, stejne jako u FoxPro, vybirat mezi souctem, poctem, prumerem atd. I v sestave muzeme uplatnit graficke objekty.

Programovani

Programovat v Accessu muzeme dvema zpusoby. Jednodussi je programovani pomoci maker, pro velke aplikace je potreba pouzit i slozitejsi programy v jazyku Access Basic. Makro je posloupnost operaci, ktera zhruba odpovida moznostem menu - otevirani a zavirani dialogu, nastaveni parametru, spousteni jinych programu atd. Makro se sestavuje ve specialni tabulce pomoci vyberu z priblizne 20 moznych prikazu a jejich parametru. Do jednoho makro-souboru lze umistit nekolik pojmenovanych maker a kazdy radek makra muze byt podminen. Slozitejsi vetveni v makru vsak neni mozne.
Access Basic je objektove orientovana verze Basicu, specializovana pro praci s databazi. Jeden modul, ktery je ulozen spolu se vsim dalsim v databazi, obsahuje cast s deklaracemi a nekolik podprogramu, funkci nebo procedur. Tyto podprogramy se daji vyvolat pomoci maker nebo prvku dialogu, pripadne mohou byt pouzity vsude, kde je mozne napsat vyraz. Promenne muzeme deklarovat jako lokalni, globalni nebo trvale existujici lokalni - STATIC. Je mozne zcela zakazat automatickou deklaraci promennych. Krome beznych typu, ktere odpovidaji typum polozek databaze, je mozne pouzit typ VARIANT, jenz se prizpusobi prirazene hodnote (stejne jako promenna XBASE).
Jako se deklaruji i vsechny objekty a je mozne pouzivat ruzne typy poli nebo pomoci popisu Type si vytvorit obecnou datovou strukturu. Pole je mozne deklarovat bez urceni rozmeru a pozdeji jeho velikost menit. Vyhodou take je, ze jednotlive polozky tabulek nejsou dostupne bezprostredne, ale jen jako soucast prislusneho objektu.
Pro narocne upravy je k dispozici transakcni zpracovani. Slozitejsi sekvence oprav se zahaji prikazem BEGINTRANS a az do jeho skonceni si nemusite delat hlavu, jak to pripadne cele vratit. Transakci skoncite prikazem COMMIT, kdyz je v poradku, nebo ROLLBACK v pripade poruchy. Odpadne tim rada slozitych kontrol.

Zabezpeceni souboru a napoveda

V menu se pod volbou SECURITY skryva prostredek pro ochranu databaze pred nezadoucimi uzivateli. Je mozne rozdelit uzivatele do jednotlivych skupin (standardne tri - Admin, Users a Guests) s ruznymi opravnenimi. Kazdy uzivatel ma sve jmeno a heslo, kterym se musi prihlasit, a pokud zadne nezna, je zarazen do skupiny Guests, kde nesmi temer nic. Soubor uzivatelu je spolecny pro celou instalaci Accessu na pocitaci a opravneni uzivatelu muze byt v kazdem souboru jine.
Vynikajicim zpusobem je vyresena napoveda, ktera zabira na disku pres 3 MB a obsahuje podrobny popis prakticky vsech komponent databaze ACCESS. Pri stisku klavesy F1 se dozvite informaci, ktera nejlepe odpovida prave provadene cinnosti. Krome jednotlivych akci obsahuje i kompletni popis jazyka s radou prikazu a doplnkovych informaci. Napoveda navic obsahuje vynikajici a revolucni prostredek CUE CARD, ktery lze nejlepe charakterizovat jako pruvodce. Cue Card vam presne poradi, jak se co nejrychleji dostat k cili vaseho snazeni, a ja sam jsem tohoto pruvodce pri poznavani Accessu vyuzival velmi intenzivne.

Zaver

I kdyz jsem v pomerne kratke dobe nemohl program poradne vyzkouset, a jako profesionalni programator ve FoxPro mohu byt take podeziran ze zaujatosti, musim konstatovat, ze Access je obecne pouzitelna databaze, schopna pracovat s vice uzivateli s presne urcenymi opravnenimi v siti. Program je ve sve prvni verzi neuveritelne kvalitne zpracovan a patri nepochybne mezi nejlepsi programy Microsoftu.




Skok na dalsi stranku Skok na hlavni menu Skok na dalsi stranku


Copyright (c) 1993-2000 Michal Pohorelsky