wz


Microsoft JET databáze, ADO, OLEDB a tvorba slovníku

Ξ July 21st, 2007 | → | ∇ Můj soft |

Leviathanovo osobní zamyšlení:
Ano, ten titulek skutečně vypadá, jako kdybych chtěl vystřískat nějaký návštěvy navíc :). Navíc mě docela štve, že většina posledních článků přispívá k dojmu že tohle je nějakej geekovskej weblog (přitom neni, že ne? :)). A teď jdu psát další geekovskej článek! Co to se mnou je? Já vim co to se mnou je …. prázdniny! No … doufám, že už brzy skončí a já se zas začnu věnovat normálním věcem jako například pivu nebo holkám.

K věci. Pamatuju si, jak jsem říkal Nedymu (http://devden.wz.cz/) o JETu - pochopitelně, že ne dobrovolně, akorát se pokoušel dát najevo zájem, aby získal programátora na svojí stranu. Jenže mě s tím nedy strašně sral, nemám rád, když se mě někdo pořád na něco ptá a vůbec neskrývá ten druhý záměr.

Jednoho dne o prázdninách mě prostě z ničeho nic napadlo, že si napíšu slovník. V tu samou chvíli mě napadlo, že ten slovník NEUDĚLÁM, pokud se nevrátím zpět k Visual Basicu, protože ten jediný umím profesionálně a prakticky. Tak jsem dal sbohem javě a céčku a vložil jsem do mechaniky svaté CD a provedl jsem instalaci, při které jsem se nemohl zbavit nostalgické nálady. Už to bude 6, 7 let co jsem se poprvé začal učit Visual Basic a dnes znám vetšinu jeho funkcí tak dobře jako písmena na klávesnici.

Ovšem to samé nemůžu říct o JETu (databázovém systému Microsoftu). Ten jsem použil za celou dobu jenom párkrát a v jednom z těch případů ještě tak lamersky, že celá aplikace byla posléze odsouzena k vyřazení z provozu a přepsání (bez využití JETu, ale texťáku, který sloužil jako databáze). Přes to všechno si pořád myslím, že JET je dobrej databázovej systém. Proto jsem se taky rozhodl k této databázi přistupovat pomocí mezivrstvy ADO (ActiveX Data Objects). ADO je novější (1996), než jeho starší kolega DAO (1992 - Data Access Objects) … No co? 11 let to je jako nic :) JET využívá jazyka sequel.

Vytáhnul jsem tedy mojí (velmi dobrou) učebnici “1001 Tipů a triků pro Visual Basic” a začal jsem se šprtat ADO. Přes den, kdy se šprtat ADO nedalo (v pokoji bylo 33°C) jsem sháněl zdroj dat pro můj slovník. Nejdříve jsem chtěl vykrást můj milovaný slovnik.cz: Poprosil jsem Tondu, jestli by mi nenapsal PHP skript, kterej by za pomoci URL (slovnik.cz má rád metodu GET) vydoloval html výstup kompletně všech stránek slovníku a následně je spojil dohromady. To bohužel nešlo, protože slovnik.cz byl mírně chráněn proti takovémuto vykrádání. Hledal jsem tedy jiný slovník a přitom jsem omylem narazil na šestimegovaej texťák, kterej obsahoval celý anglicko český slovník. Byl šiřitelný pod licencí GNU/FDL, po čímž jsem si představil “vem si z toho ty data a autory vymaž, je to přece oupn sors” :)

Posléze jsem bohužel zjistil, že slovník obsahuje jisté výrazy, které nejsou přeložné. No jasný, to jsou celý oupnsorsáci, nedostanou za to prachy, tak na to serou … klidně si daj na web nekompletní slovník, kterej je navíc tak dementně udělanej, že by autoři zasloužili pořádně profackovat. To jsem měl radši ukrást nějakej komerční, bylo by to tisícekrát lepší. Ale mě to bylo v podstatě jedno, databáze, kterou jsem z toho hodlal udělat se bude dát v budoucnu nahradit lusknutím prstu :).

Začal jsem tedy dělat bastlo skript, který měl převést hnusnej oupnsorsáckej texťák do krásný MDB databáze. V tomhle jsem si trochu nechal poradit od Tondy, protože jsem databázovej laik. Díky němu má teď databáze 16 mega a ne 160, protože jsem se chystal používat char místo varchar :) Databáze tedy byla na světě.

Bylo mi líto toho bastlo programu, tak jsem ho nakonec povýšil na hlavní projekt slovníku. Zanechal jsem tam ty bastlo funkce netknuté, kontrolní prvky jsem odsunul za hranici formuláře a začal jsem tvořil slovník. Slovníku vznikly asi tři verze předtím, než vznikla finální. Při vytváření slovníku jsem měl problém s vyhledáváním, jelikož sloupce s typem varchar za boha nešly indexovat, ale nakonec jsem to vyřešil zase pomocí ADO a jeho funkcí.

Poslední problém byl s distribucí projektu. Musel mít instalátor, protože většina počítačů bez officu nemá MDAC (Microsoft Data Access Components), některé dokonce ani interpreter Visual Basicu (msvbvm60.dll). Instalátor je ale zabugovanej, tak jsem musel stáhnout Service Pack 5 pro Microsoft Visual Studio 6.0.

První betatesteři byli touny s kivanem. Oba dva rozběhli můj projekt bezproblému na Linuxu (!!!).

Nakonec asi download:
http://leviathan.xf.cz/filez/mfs_dict.rar

Až najdu nějaký lepší zdroj slovní zásoby, dám vám vědět, bude potřeba jenom vyměnit soubor db.mdb.
To je zatím ode mě vše.

 

4 Responses to ' Microsoft JET databáze, ADO, OLEDB a tvorba slovníku '

Subscribe to comments with RSS or TrackBack to ' Microsoft JET databáze, ADO, OLEDB a tvorba slovníku '.

  1. kivan said,

    on July 21st, 2007 at 5:59 pm

    Takys mi moh dát link na muj weblog ( http://kivan.xf.cz ) u mýho jména :D ALe jinak celkem zajímavej prográmek. Ještě bych si snad dovolil poznámku, že pro instalaci pod Linuxem budou lidé potřebovat WINE, aby to nainstalovali a sputili…A v průběhu instalace to ještě hodí chybu, že se nepovedlo zasáhnout do složky system32, což je u Ubuntu (v mém případě) pochopitelné. A hoď sem nějaký screeny :) Sám jsem ti min. jeden posílal :)

  2. michaelf.ms said,

    on July 21st, 2007 at 6:39 pm

    Add kivan: Jo, na to jsem omylem zapomněl, ale když už sis ho sem přidal násilím.
    Spokojíš se se smrsklým skrýnem? Photobucket nemá rád velký rozlišení: http://i184.photobucket.com/albums/x169/bsorter/skryn_defka.jpg

  3. Tonda said,

    on July 22nd, 2007 at 12:17 am

    11 let je ve světě IT sakra hodně.

    Jo ten slovník by se ukrást dal, ale slovíčka který se opakovaly (měly víc překladů) tam vkládaly přes proměnný JavaScriptu. Jelikož jsem se zdrojákem pracoval jen jako s textem, muselo by se to složitě vycucnout a za ty proměnný dosadit. Šlo by to, ale pokud člověk není král regulárních výrazů, tak by to časově nestálo za to.

    Hele ale s tim fulltextovým indexem je to nějaký divný. U mySQL databáze jde index udělat u dat. typů varchar a text (odzkoušeno na vlastní kůži). Já tu JET databázi neznám, ale podezřívám jí, že prostě fulltext neumí. To jsou celý Microsofťáci, dostanou prachy, tak na to serou. :o)

    Ale slovníček je to dobrej. I když možná by bylo úspěšnější, kdyby to bylo zase jenom texťáková databáze. Že by si lidi mohli snadno rozšiřovat slovníček. Ale jak v tom potom vyhledávat že jo, to už by bylo složitější, aby to taky netrvalo 5 minut.

    Zkus to fooknout na slunečnici, však on ho někdo používat bude i když je tam slovníků asi hodně.

  4. michaelf.ms said,

    on July 22nd, 2007 at 9:59 am

    Add Tonda: Ale lidi si to můžou rozšiřovat, stačí příslušnou databázi otevřít v Accessu, kterej každej má :) Já jsem jí nijak nešifroval.

    Ma slunečnici? To by asi musela bejt větší mástrovina ne? :)

Leave a reply



nervi

Leviathan

    kdo je Leviathan

    Jsem student aktuálně čtvrtého ročníku střední průmyslové školy strojní a elektrotechnické v českých budějovicích

     


 


RSS Zdroj

    ::

    RSS 2.0 < ZDE

    Přidejte si můj zdroj do vaší RSS čtečky

     

Statistiky