Portál AbcLinuxu, 5. května 2025 17:23

MDB Tools: MS Access trochu jinak - II

21. 7. 2004 | Stanislav Puffler
Články - MDB Tools: MS Access trochu jinak - II  

Grafické nadstavby, pomocné nástroje a případové studie.

Gmdb2

Gmdb2 je grafické uživatelské rozhraní pro práci s MDB Tools v X-Window. V jednotlivých záložkách je možné vidět databázové objekty v principu stejně jako v samotném MS Accessu. Není už však možné všechny podrobně prohlížet, natož editovat. Nechme se překvapit v dalších verzích MDB Tools.

V prvním okně Gmdb2 jsou vidět dostupné tabulky databáze. Nejsou zde vidět tabulky systémové. Pomocí menu je pak možné zobrazit vlastnosti jednotlivé tabulky a data v tabulce uložená. Vlastnosti jsou tak trochu svéprávné, jelikož moje tabulka má například ve sloupci 1 definován typ pole jako automaticky přiřazované číslo, což je nativní typ Accessu. Gmdb2 však zobrazí Long Integer o velikosti 4. Stejná situace je i v shellu pomocí mdb-schema. Navíc definice tabulky je oproti zobrazení v samotném Accessu neúplná (indexy jsou avizované až v dalších verzích, ale chybí třeba i další atributy jednotlivých polí v tabulce).


Prostě k tabulkám chybí mnoho informací jež se k ní v Accessu váží. Třeba primární klíč tabulky v souvislosti s relacemi považuji za velmi důležitý a MDB Tools jej zatím bohužel neumí. Na druhou stranu je tento nástroj v neustálém vývoji, tak se snad dočkám. To hlavní z definice tabulky tam je. Další možnosti práce s tabulkou jsou zobrazení dat - budeme-li se držet terminologie MS Access, tak v datovém listu. Konečně pak možnost data z dané tabulky exportovat do textového souboru s možností nastavit řádkování, oddělovače polí, nastavit kvótu, znak kvóty a možnost zahrnout do výstupu hlavičku tabulky.

Ostatní záložky už jen zobrazují databázové objekty, ale nelze s nimi již dále pracovat. Jsou to: dotazy, formuláře, reporty, makra a moduly.

Gmdb2 umí ale i další věci, jako zobrazit verzi a informace o souboru .mdb nebo Debugger, který mi ovšem nedělá téměř nic jiného než padá a padá :o(. Vychytávkou jsou pak ovšem nástroje MDB Query Tool a Export Schema. Těm bych se rád věnoval podrobněji.

Export Schema

Export Schema je GUI pro výše zmíněnou utilitu mdb-schema a umí tedy exportovat DDL databáze do textového souboru. Ve formuláři si vyberete umístění a název cílového souboru, tabulky, jejichž schéma byste chtěli exportovat - výchozí nastavení jsou všechny tabulky, dále pak dialekt (na výběr jsou již zmíněné Access, Oracle, Sybase, MS SQL Server, PostgreSQL). Volitelně pak můžete do výstupu zahrnout i relace (ty jsou kamenem úrazu, jelikož MDB Tools prostě relace ve výstupním souboru DDL nezobrazí, i když třeba vím, že je v databázi mám) a příkaz DROP TABLE, který slouží jako prevence v případě, že by již taková tabulka ve vaší databázi, do které se DDL importuje, existovala. Výsledný výstup pak může vypadat například takto:

DROP TABLE distro;
CREATE TABLE distro
   (
        id                      int (4),
        distro                  varchar (100),
        package                 int (4)

);
-- CREATE ANY INDEXES ...

DROP TABLE package;
CREATE TABLE package
   (
        package                 int (4),
        packagename                     varchar (100)

);
-- CREATE ANY INDEXES ...



-- CREATE ANY Relationships ...

relationships are not supported for sybase

MDB Query Tool

MDB Query Tool je grafické uživatelské rozhraní pro dotazy jazyka SQL nad daty v tabulkách. Nečekejte žádné zázraky jako zvýrazňování syntaxe nebo dokonce automatické doplňování kódu, ale pro názornost a získání základních informací o datech uložených v databázi to stačí. SQL příkazy je možné ukládat do textového souboru a opětovně načíst a spustit. Výsledky dotazu můžete v tomto nástroji opět exporovat do formátovaného textového souboru. V principu stejným způsobem jako data z tabulek.

K čemu je tedy klíč dobrý ?

Dokáži si představit situaci, kdy firma kompletně běžící na GNU/Linuxu (jak také jinak, že?), dostane od klienta databázi čehokoliv právě ve formátu MDB. Dejme tomu, že má data v databázi verifikovat, aktualizovat, doplnit či prostě jakkoliv změnit a poslat zákazníkovi zpět.

Úloha zdá se býti pro Linuxem vybavenou společnost zdánlivě složitá, ale s využitím MDB Tools není neřešitelná (pominu-li řešení Wine a zakoupení licence MS Access). Prostě a jednoduše se data exportují do formátu, který dokaže pojmout interní firemní databázový systém, data se zpracují a klient obdrží následně požadovaná data dejme tomu v .xls nebo .csv, který mu buď stačí nebo si ho zase pěkně naimportuje zpět do MS Accesu. Jediným, avšak dostatečně limitujícím faktorem je, že MDB Tools nemají zatím k dispozici českou lokalizaci (ani jinou než standardní anglickou) a nedokáží tudíž pracovat s daty v českém kódování.

Případová studie

Dokáži si představit také mnohem složitější situaci - kdy po nás klient požaduje například online reporty z databáze MDB na webu. My upravujeme klientská data u nás ve firmě a klient chce mít představu, jak se data v jeho vlastní databázi mění, jaká je úspěšnost a podobné záležitosti. V prostředí MS Windows by byla tato situace dle mého názoru velmi obtížně řešitelná, pokud by byla "jen za pomoci Windows" vůbec řešitelná.

V prostředí GNU/Linuxu bychom na to mohli vyzrát tak, že bychom soubor s databází umístili na SAMBA fileserver a zpřístupnili ho tak lidem, kteří by s ním v naší marketingové firmě měli pracovat. Soubor bychom si také zpřístupnili protokolem SMB ze stanice, na které bychom měli k dispozici MDB Tools. Pomocí démona crond a shell skriptu volajícího nástroje příkazové řádky z MDB Tools bychom zpracovali SQL dotazy do souboru MDB a jejich výsledek následně zpracovávali dejme tomu v PHP a poskytovali obsah webovému serveru.

Druhá možnost je samozřejmě přímo přes ODBC a DBD::ODBC opět s využitím PHP nebo Perlu. Pak už zbývá jen prezentační vrstva pro našeho náročného zákazníka a tou je webová stránka zpřístupněná ven do sítě internet pomocí směrování http požadavků z proxy našeho zákazníka na naší gateway. Tam už dejme tomu pomocí iptables směrujeme požadavek na výše zmíněný webserver a vesele ukazujeme, jak se daří naším pracovníkům plnit, upravovat či aktualizovat zákaznickou databázi.

To byla spíš taková "věděckofantastická" odbočka ;o). Pojďme k závěru.

Klíč, který odemyká data

MDB Tools není univerzálním klíčem ke všem branám a dveřím v souborech .mdb vytvořených v databázi MS Access, ale některé dveře přeci otevře. A ty, které neotevře nyní, jistě brzy pokoří. Pokud ano, budeme opět o něco blíže k možnosti plného nahrazení MS Office Proffesional (jehož součástí právě Access je) linuxovými alternativami. Doufám, že se MDB Tools bude i nadále takto progresivně vyvíjet a dotáhne svou funkčnost třeba i dál než samotný MS Access. MDB Tools jsou vydávány pod licencí GNU General Public Licence, mají tedy ke kvalitnímu a přesto dynamickému vývoji ty nejlepší předpoklady. Osobně se zkusím podílet minimálně na lokalizaci do jazyka českého, pokud o to budou mít aktuální vývojáři zájem. Závěrem bych rád jen toliko: "Proč lézt někam oknem jako raubíř? Mám přeci klíč, zkusím to tedy raději dveřmi." ;o).

Související články

MDB Tools: MS Access trochu jinak - I
Tvorba databází v MySQL
Správa databází v MySQL
OpenOffice.org 1.1.1 plus MySQL 4
Tvorba databázových formulářů v OpenOffice.org
Propojení OpenOffice.org s databází

Odkazy a zdroje

Domovská stránka projektu
Domovská stránka MS Access
Mailing List pro vývojáře MDB Tools
Domovská stránka unixODBC

Další články z této rubriky

Týden na ITBiz: Lepší šifrování se stává stále větší prioritou aplikací
Týden na ScienceMag.cz: Hubbleovo napětí by mohl vyřešit pomalu rotující vesmír
Týden na ITBiz: Halucinace balíčků při programování AI
Týden na ScienceMag.cz: Kvantová elektronika v křemíku a diamantu
Týden na ITBiz: DeepSeek nic nemění, umělá inteligence vyžaduje obrovské investice do cloudové infrastruktury

Diskuse k tomuto článku

MaT avatar 21.7.2004 19:16 MaT | skóre: 28
Rozbalit Rozbalit vše Pripominky
Odpovědět | Sbalit | Link | Blokovat | Admin
Ach jo, uz u predchoziho dilu jsem se podivoval nad tim, jak nekdo muze anglicke "quotes" (uvozovky) prekladat do cestiny jako "kvoty". A v tomhle dile je to koukam znova, tak nevim. :-)

A jeste jedna vec - v clanku je zminena moznost provozovat MS Access pod Wine. Vsude mozne na webu jsem zatim nasel, ze zrovna Access se takto moc provozovat nedari. Mne samotnemu se to take nepovedlo, ac jsem pod Wine rozjel MS Word, Excel, PowerPoint, Internet Explorer... Ale Access proste ne. Proto by mne zajimalo, jestli se to autorovi povedlo...
Open source software for open minded people. :-)
23.7.2004 08:54 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: Pripominky
ad 1) Uz v diskusi pod prvnim clankem jsem se Vam za to omlouval - v te dobe uz byl druhy dil taktez napsan a pripraven na vydani. Tudiz jsem to uz nemohl zmenit. Sorry

ad 2) Provoz MS Access pod Wine jsem v clanku zminil principielne, ne jako fakt ze by pod nim mel chodit. Osobne Wine vubec nepouzivam, protoze pak muzu pouzivat rovnou Windows ;o)
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
MaT avatar 23.7.2004 16:55 MaT | skóre: 28
Rozbalit Rozbalit vše Re: Pripominky
ad 1) Jasne, ja vim ze jsme to resilu uz pod tim predchozim dilem, proto jsem se divil, ze se to tu objevilo znovu. :-) Bych cekal, ze aspon v redakci to nekoho trkne - snad delaji nejake korektury, ne? Nebo by to mel aspon nekdo precist. :-)

ad 2) Ne ne, to pak clovek ma nestabilni OS. :-) Ja chci pouzivat a pouzivam Linux, ale bohuzel tu a tam nejaky program by se fakt hodilo byt schopny spustit i z Linuxu. Pro mne treba ten Access nebo IDOS... A takhle jsem nabyl dojmu, ze jste to zkousel, tak jsem se ptal. :o)
Open source software for open minded people. :-)
22.7.2004 09:26 Maverick
Rozbalit Rozbalit vše Maly dotaz...
Odpovědět | Sbalit | Link | Blokovat | Admin
1. Jak velke databaze pod MDBTools provozujete? Ja jsem se setkal s problemy u velkych databazi.

2. Jak funguje cestina v MDBTools (podle mne to bez pathche to proste nejede!)
23.7.2004 08:51 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: Maly dotaz...
ad 1) Nejvetsi databaze, se kterou jsem pod MDBTools pracoval byla databazova aplikace pro operatory kontaktniho centra urcena pro aktivni telemarketing (prodej) s vice nez 16 000 zaznamy (rozumej klienty). Vyjadreno ve velikosti souboru .mdb - nejakych 5MB komprimovane a az 25MB pri denni praci operatoru. Tudiz opravdu nic extra, ale na tyto ucely to staci.

ad 2) Cestina v MDBTools nefunguje tak jak jsem psal v clanku. O zadnem patch jsem bohuzel zatim neslysel, v pripade ze mate link, tak ho prosim poskytnete ;o)
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747
24.7.2004 12:26 Maverick
Rozbalit Rozbalit vše Re: Maly dotaz...
Jeden jsem poslal na sourceforge.net/projects/mdbtools Vyuziva knihovnu iconv a umi prevadet UCS2 (interni kodovani v mdb) na UTF8. Urcite by slo lehce nastavit prevod na jakoukoliv znakovou sadu.

Je to takovy neuhlazeny (protoze ja neumim programovat), ale funguje dobře!
26.7.2004 10:01 Open Mage | skóre: 24 | Lom
Rozbalit Rozbalit vše Re: Maly dotaz...
OK, díky. Komunita býti zavázána ;o) Už to jdu sosat...
Stanislav Puffler, DiS. specialista na internet marketing a ecommerce www.openmage.cz tel. 773 565 747

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.