Přidat článek mezi oblíbenéZasílat nové komentáře e-mailem Automatizácia vo svete počítačov IV. - Zapojíme databázu

Pri zjednodušovaní úloh je dobrou pomôckou aj databáza. Môže slúžiť ako základ pre niečo zložitejšie a predsa len uchovávať dáta v databáze je účinnejšie ako hromada texťákov a XML súborov. V tejto časti si ukážeme ako môže AppleScript spolupracovať s DB.

1. Úvod

Na tento príklad nám stačí jednoduchá databáza s jednou tabuľkou a krátky skript, ktorý si vysvetlíme.
Príklad spočíva v tom, že si vytvoríme malý program na správu hesiel. Poznáme to všetci, hesiel je veľa a máme ich pohádzané po rôznych textových súboroch (v tomto kontexte nemám na mysli heslá pre stránky, ktoré si každý moderný prehliadač zapamätá).

Heslá v súboroch majú 2 veľké chyby. Každý môže do daného súboru nahliadnuť v momente, keď si sadne za váš počítač. Druhá chyba je, že pokiaľ pri vás niekto sedí a vy potrebujete skopírovať vaše heslo, môže pri tom nazerať cez plece.
Ako problém vyriešiť? Program, ktorý vytvoríme, by mal na základe vstupného údaju nájsť požadované heslo a skopírovať ho do clipboardu bez toho, aby sa niekde na obrazovke objavilo.

2. Realizácia

Pre tento príklad som využil MySQL databázu. Vytvoril som si v nej databázu s názvom hesla:
create database hesla;

Ďalším krokom bolo vytvorenie tabuľky s názvom APP, ktorá obsahuje 2 polia. Názov aplikácie (môže slúžiť aj ako všeobecné pole pre vstupný kľúč) a samotné heslo:
CREATE TABLE APP (APPNAME VARCHAR(50), PASS VARCHAR(50), PRIMARY KEY (APPNAME));

Do tejto databázy si naplníme všetky potrebné heslá a prejdeme na vytvorenie jednoduchej aplikácie.

Na tento účel použijeme opäť AppleScript.
http://pc.poradna.net/file/view/7734-script-screen -png

2.1. Vysvetlenie skriptu

Na začiatku skriptu je príkaz pre vstup od používateľa. Týmto vstupom bude používateľ zadávať reťazec, podľa ktorého sa vyhľadá konkrétne heslo. Rovnakým spôsobom môže aplikácia od používateľa vyžadovať aj heslo do MySQL (vhodné pre zamedzenie zneužitia programu). Vstup sa dá nastaviť tak, aby vpisované údaje neboli na obrazovke viditeľné.

V predošlom článku som písal, že premenné v AppleScripte nie je potrebné deklarovať. Pokiaľ však potrebujeme premennú, ktorá je dostupná v hlavnej časti ako aj v podporných funkciách, potrebujeme ju zadefinovať príkazom "global".

V ďalšej časti skriptu sa nastavia hlavné premenné - cesta k MySQL, meno do MySQL, heslo, názov databázy, tabuľka a pole tabuľky, z ktorého budeme čítať. Voliteľne je možné nastaviť aj hostname, pokiaľ databáza beží mimo váš počítač.

Vyskladáme reťazec pre prihlásenie do MySQL a samotné Query, ktoré je v podstate len obyčajný select z tabuľky podľa zadanej WHERE clause.

Funkcia send_query následne z nášho query prejde všetky záznamy v cykle a výstup nám vráti vo forme zoznamu hodnôt (premenná DB_DATA).

Pre pochopenie ako tento výstup vyzerá si ho môžete nechať vypísať. Na prvom indexe zoznamu sa nachádza názov poľa tabuľky a na ďalších nájdené hodnoty (heslá). Keďže sme si aplikáciu postavili tak, aby vrátila vždy jedno heslo, samotný zoznam bude obsahovať len 2 bunky.

Predposledným príkazom zo zoznamu vytiahneme hodnotu na druhom indexe a odložíme si ju do premennej retval. Z nej pošleme hodnotu priamo do clipboardu.

2.2. Na okraj

Príklad používateľského vstupu so zahviezdičkovanou odpoveďou - vhodné na zadávanie hesla do DB.
set premenna to text returned of (display dialog "Enter password for " default answer "" with hidden answer)

3. Záver

Po skompilovaní uložíme skript ako aplikáciu.
http://pc.poradna.net/file/view/7735-save-screen-p ng

Takto uloženú aplikáciu môžeme kedykoľvek spustiť ako každú inú aplikáciu.
http://pc.poradna.net/file/view/7736-run-screen-pn g

--
Medzi prílohami nájdete aj zdrojový skript aplikácie.

Komentář k článku

1 Zadajte svou přezdívku:
2 Napište svůj komentář:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět na články