AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

Superbáze Professional - díl 4.

Martin Dufek

Nuž tedy, opět je tu Superbase Professional. Právě máte před sebou další část "nekonečného" seriálu o práci v tomto databázovém programu. Předcházející díl Vám snad docela podrobně předvedl možnosti QUERY PROCESŮ a dnes budeme pokračovat. Ukážeme si UPDATE PROCESSy se vším co k nim patří a také se dozvíte jakym způsobem je u SBpro vyřešeno ukládání dat a databázových souborů na disk.

Vymazání záznamu
Každý, kdo již pracoval s počítačem, určitě potřeboval něco vymazat. Třebaže, jste to při tomto kurzu práce v Superbázi snad ještě nepotřebovali, určitě taková situace dříve či později nastane a tak si na jednom záznamu ukážeme jak na to - jak ho smazat!!! Někdo by si mohl domnívat, že je potřeba nějakou osobu zrušit z našeho adresáře. Záznam s číslem 3, pan Václav P. nám (nebo Vám) stejně nic nedluží, takže pryč s ním. Nalezněte si tento záznam a skočte do menu "Edit - Cut" (pravá Amiga + X). Daný záznam jste "jakoby vyřízli" z naší databáze. Pokud ale chcete vymazat více záznamů, je lepší využít "Process Remove...", o které se dočtete trochu níže.
No a když už jsme si nějaký záznam smazali, co takhle si také jeden doplnit - pochopitelně jen v rámci procvičení, protože to už musí každý perfektně umět. Menu "Record - New" a zadejte jméno: HAJNY Michal, Sokolovska 85, 540 00 Trutnov. Nyní stiskněte pravou Amiga klávesu a "S" nebo to proveďte z menu.
Při jakékoliv práci s daty je potřeba občas něco zaktualizovat (změnit datumy, připočítat úroky, zvýšit ceny, odečíst daně, opravit či doplnit zprávy...). A právě k tomu slouží v Superbázi funkce "Process update". Jak si nejlépe předvést její možnosti? Třeba vypočteme v našem adresáři úrok z pohledávek. Doufám, že svůj soubor již máte dávno otevřen včetně správně zadaného hesla i pro mazání (to bylo tuším "atlantida"). Do pole "Castka" by jsme sice mohli jednoduše přičíst třeba 15% úrok z pohledávané sumy, ale domnívám se, že bude mnohem zajímavější vytvořit nové pole a do něj zapsat jen úrok. Zároveň si tak můžeme ukázat jak se provádí změna struktury databázového souboru.

Modify File
Nejprve tedy přidáme do struktury našeho adresáře numerickou položku "Urok". V menu "Project" zvolte "Modify - File..." (pravá Amiga + M) a otevře se pro Vás již jistě známé okno "File definition". Dole do podlouhlého okénka napravo od slova "Field" (to by jste již měli znát od prvního dílu tohoto seriálu) napište jméno nového pole "Urok", klikněte na gadget "Numeric" (číselný formát - nadefinujte stejný, jako je u pole nazvaného "Castka"). Nakonec klikněte na "Add", zkontrolujte, zda jste vše zadali správně a název nového pole je přidán na konci seznamu, a klikněte na "OK". Superbase se Vás ještě zeptá, zda se má definice souboru uložit - potvrďte tedy opět "OK". Takto jste pozměnili strukturu databázového souboru a uložili ji na disk.
Pokud jste vše zadávali správně, měly by být všechny názvy polí, včetně toho nově dodefinovaného, nyní zobrazeny. Nově vytvořené pole "Urok" by nemělo obsahovat vůbec nic - nehledě na numerickou strukturu. A tak si ukážeme jak ho zaktualizovat, aby tam byla alespoň nula.

Process UPDATE
Pochopitelně, že zde využijeme možností procesu "Update" (vždyť právě proto to děláme). V menu "Process" naleznete hned pod "Query" další položku - "Update" a zvolte "Edit..." (v budoucnosti Vám může postačit klávesová zkratka pravá Amiga + U). Otevře se okno "Update filter" (i to je Vám již dobře známé, filtrové okno jako každé jiné), kde máte zadat podmínku, pro které záznamy má aktualizace proběhnout. V tomto případě chceme zaktualizovat vše, takže nic nepište a rovnou klikněte na , "OK". Hned se objeví další okno - "Update fields". Zde musíte udat co a jak změnit. Zadávání je podobné jako u filtrů (nebo kdekoliv jinde; viz. předcházející díly), ale musíte vytvořit takový vzorec. Klikněte na název našeho dodefinovávaného pole (zřejmě budete muset použít posuvnou lištu, aby jste ho uviděli v dolní části okénka) a v dolním podlouhlém zadávacím okénku se objeví text "Urok.ADRESAR = ". Chápejte to jako přiřazení, v tomto případě ještě dopište číslici nula (třeba do okénka vedle "Value") a stiskněte Enter. Počítač bude chvíli pracovat a v každém záznamu doplní do daného pole hodnotu "0", ale protože se jedná o numerickou položku nakonfigurovanou jako peněžní měna, bude tam rovnou tohle: "0,00 Kč".A hned další příklad. Trochu si přivyděláme a naúčtujeme každému úrok ve výši 15% (pro vysvětlení: tomu se říká lichvářství). Znovu vyvolejte "Process update" (pravá Amiga + U), do filtru znovu nic nezadávejte, jen klikněte "OK" a nyní naklapejte vzorec pro aktualizaci. Nejprve se rozpomeňte na základní školu ... jak se počítají procenta? "Tak to se vezme základ, vydělí stem a vynásobí požadovaným počtem procent." Pro nás to znamená, že do pole "Urok" přiřadíme pole "Castka" / 100 * 15. Klikněte tedy nejprve na jméno "Urok", poté na gadget "(" (asi bude lepší a přehlednější zapsat podíl do závorek), dále jméno "Castka", gadget "/", napište "100" (pochopitelně bez uvozovek), další gadgety ")", *" a nakonec ještě napište "15" a Enter. Tak .co, zvládli jste to? Nyní tedy ještě klikněte na "OK" a vyčkejte co se bude dít. Pokud jste opět postupovali přesně dle pokynů a provedli je správně, vše by mělo být zaktualizováno a úrok uložen na svém místě. Ještě si to zkontrolujte: pan Novák (10.000,- =>1.500,-), pan Breburda (5.000,- => 750,-) atd. Snad máte někde doma kalkulačku.
Ale dnes máte také dobrou náladu a proto se rozhodnete všem osobám, kterým jste půjčili peníze v listopadu 1994, slevit na úroku jednotnou částku 500,- Kč. Takže opět zvolte "Process Update", do "Update filtr" zadejte pouze listopad 1994 (i tohle by jste měli již dávno umět). Filtrovací podmínka by měla vypadat asi takto:

Datum.ADRESAR >= "01.11.94" AND Datum.ADRESAR <= "30.11.94"
a v okně "Update fields" zase zadejte:
Urok.ADRESAR = Urok.ADRESAR - 500

No a teď se schválně podívejte co se stalo. Třeba pan Andonov Vám dlužil jen tak nízkou částku, že úrok z ní nepřekročil oněch 500,- Kč (stejně tak i pánové Jakoubek a Kozel), a Vy jste se tam takto dostali do minusu. To jako správní "podnikatelé" nemůžete absolutně dopustit. Vždyť, kdyby se to vzalo logicky, tak by jste nyní Vy dlužili jim, a to nelze, to se musí nějak odstranit. Nuž co, vytvoříme další aktualizaci dat a všude, kde se úrok dostal do minusu ho vynulujeme.

Do oken "Update filter" musíte zadat podmínku
Urok.ADRESAR < 0
a do "Update fields":
Urok.ADRESAR = 0

Pro oddělování jednotlivých vzorců (přiřazení) na jednom řádku se používá znak ":" (dvojtečka). Myslím, že to by už kolem aktualizací mohlo stačit, snad jste to pochopili a víte jak se dají používat a různě kombinovat. Tak už jen poslední, závěrečná akce, kde všechno pomažem, změníme atd. Pochopitelně si ještě jednou a naposled zvolte "Process - Update Edit...", filtr nechte prázdný (všechny záznamy).

A nyní co provedeme:
1. Do "Poznámky" vložit "Každý si půjčil 1.000,- Kč"
Poznamka.ADRESAR = "Každý si půjčil 1.000,- Kč"
2. Vložit dnešní datum (TODAY)
Datum.ADRESAR = TODAY
3. K částce přičíst 1.000,- Kč
Castka.ADRESAR = Castka.ADRESAR + 1000
4. Přepočítat úrok, nyní pouze 5%
Urok.ADRESAR (Castka.ADRESAR / 100) * 5

Pochopitelně, že to lze udělat postupně na čtyři kroky, nebo vše zadejte do jednoho řádku a nezapomeňte oddělit dvojtečkou.
Stejně tak jako Query lze i vytvořené (nadefinované) Update uložit na disk. Pokud jste si minule uložili Query Process "Výpis dlužníků a celkový součet pohledávek", můžete ho v této chvíli použít, upravit pro současné potřeby a porovnat změny.

Process REMOVE
Pomocí této volby můžete vybrat všechny nebo jen některé záznamy a vymazat je. V menu "Process zvolte položku "Remove...". Objeví se okno "Remove records filter", klasické filtrovací okno Superbáze, kam musíte definovat podmínky, podle kterých se budou vybírat záznamy k odstranění. Opět se jedná o filtr jako každý jiný. Jestliže nestanovíte žádnou podmínku, vymažou se všechny záznamy. Pokud ji ovšem zvolíte, budou vymazány pouze záznamy danou podmínku splňující. Na tomto souboru v tuto chvíli to raději nezkoušejte.

REORGANIZE
Každý databázový program se chová skoro jako člověk (a člověk je zvíře), čím déle se někde nachází tím větší je kolem něj nepořádek. A tak je potřeba občas uklidit. A přesně tak funguje i Superbase.
Když pracujete se záznamy, je potřeba občas nějaký vymazat, jiný přidat, další zkopírovat atd. Co se při těchto akcích přesně děje v databázovým souborech vysvětlím snad někdy jindy, protože to souvisí s jejich strukturou. Pro Vás je v tuto chvíli důležité, že takto vznikají místa zaujímající zbytečně paměť a zpomalující práci, která je nutno odstranit (uklidit). A právě proto tady je reorganizace, která na disku vytvoří zcela nový "uklizený° soubor.
Superbáze přitom vytváří další soubor na základě informací z původního. Proto musíte zadat i název nového souboru, který nesmí být totožný se starým (pokud není umístěn do jiného adresáře), protože SBpro není schopna do jednoho databázového souboru současně zapisovat a číst z něj. Druhou možností použití Reorganizace je oprava poškozeného souboru, nekompletních datových vět atd. Proto někdy program oznámí, že se změnil počet záznamů v souboru, protože některý byl třeba zcela nečitelný a tak se v novém souboru vůbec neobjeví.
Zvolte položku "Reorganize" z menu "Process". Objeví se okno, která Vás upozorňuje na to, že reorganizace celého databázového souboru bude potřebovat určitý čas. Pokud máte harddisk nebude to trvat déle jak pár sekund (možná minutu při megabajtovém souboru), ale na disketové mechanice si to může vyžádat i půl hodiny či více. Pochopitelně vše závisí na velikostí souboru. Pokud jste si jisti, že chcete nechat celou akci proběhnout klikněte na "OK". Nyní ještě zadejte název nového přerovnaného souboru, případně i cestu pokud ho chcete uložit jinam než do aktuálního adresáře.

Struktura souborů
Pokud jste si nechali vypsat (třeba příkazem DIR v Shellu nebo v Superbázi z menu "Utilities Directory List") obsah adresáře, kde máte Váš databázový soubor (Adresář) uložen, jistě jste si již všimli, že se tam nalézá hned několik souborů, které začínají stejně, ale mají různé přípony. Superbáze totiž vytváří několik souborů. Základní soubor je s příponou ".sbf", protože tam jsou uloženy veškerá data. Záznamy se tam zapisují se všemi obsahy polí postupně jak byly zadávány, tedy ve zcela nesetříděném stavu. V souboru ".sbd" naleznete informace o struktuře celého databázového souboru, názvy a definice polí. V souborech ".sbq" naleznete definice vytvořených a uložených Query procesů, podobně jako ".sbu" pro Update procesy. Soubor s příponou ".sbt" většinou obsahuje text vytvořený interním textovým editorem zakompilovaným do Superbáze. Zde lze vytvářet dokumenty pro automatizaci korespondence (Mail Merge) vytvořit jednu formu (třeba dopisu, dodacího listu, faktury atd), do které se postupně doplní všechny nebo jen vybrané záznamy (třeba jen jejich část). S touto problematikou se setkáme až někdy příště. Pod ".sbp" se neukrývá nic jiného než program vytvořený pod Superbází v programovacím jazyku DML. Možnost programování dává tomuto databázovému programu velmi silnou zbraň, protože co SBpro neumí, to si můžete sami doprogramovat. Proto se budu programování v DML věnovat až trochu později, ale důkladně. V neposlední řadě tu jsou ještě soubory s příponou ".sbv", která označuje formulář vytvořený programem SB Form Designer. Ještě tu jsou definice funkčních kláves - ".sbk" a mělo by to být vše. Snad jsem na nic nezapomněl.
Poté naleznete několik úplně stejně velkých souborů, které se odlišují pouze příponou tvořenou maximálně dvěmi číslicemi. To jsou indexové soubory. A číslice udává index: např. "2" je příjmení, "6" je město atd. Ty obsahují vždy pouze jedno abecedně seřazené pole (tedy třeba všechna za sebou abecedně netříděná příjmení či města) a jsou zde pro vyhledávání a třídění dat. Jestliže máte aktuální index příjmení a necháte nějaké vyhledat, program prohlédne nejprve indexový soubor, kde nalezne požadovaný řetězec a až za pomoci získaných informací vstoupí na určité místo datového souboru, odkud zobrazí všechny informace. Pokud nějak záznam vymažete, dojde pouze jeho odstranění z indexových souborů, ale v hlavním datovém zůstane, pouze je označen jako vymazány. Právě na odstraňování těchto zbytků je určená reorganizace.

Takto vypadá soubor "ADRESAR.sbd":

Cislo ;NUM CON RDO IXD ; 9999. ;0 ;0 ;>SER ("Adresar")
Prijmeni ;TXT IXD ; 20 U ;1 ;0 ;
Jmeno ;TXT   ; 20 ;2 ;0 ;
Ulice ;TXT   ; 40 ;3 ; 0 ;
PSC ;TXT   ; 6 ;4 ; 0 ;
Mesto ;TXT IXD ; 20 ;5 ; 0 ;
Telefon ;TXT   ; 20 ;6 ; 0 ;
Poznamka ;TXT   ; 100 ;7 ; 0 ;
Datum ;DAT IXD ; dd.mm.yy ;8 ;0 ;
Castka ;NUM IXD ;$ 999999.00 ;9 ;0 ;
Urok ;NUM   ;$ 999999.00 ;10 ;0 ;

Vytlačiť článok



Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing



none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )