Page 23 - Enterpress Magazin - 2019. 3-4.
P. 23
2019. május–augusztus 23. oldal
A rekordmutató ugyanott állt, feltételnek ugyanazt adtuk Figyelem!!! Attól függően, hogy milyen karakterkészletet
meg, az eredmény mégis más, nem vizsgálta meg az ak- használunk, lehet, hogy nem találjuk a „@” jelet, ez ne za-
tuális rekord előtti részt, és a kilences rekordon megállt varjon minket, helyette a nagy ‚Á’ betűt kell használni, amit
(ez az első, amelyre nem teljesül a feltétel, a továbbiakban PC billentyűzetről az ‚SHIFT+0’ megnyomásával csalha-
ez az aktuális rekord). Vegyük észre, hogy ezek paraméte- tunk elő. A @ karakter használatára később is szükségünk
rek is csereberélhetők. lesz, tehát ezt jól jegyezzük meg.
5.6. Az adatbázis karbantartása
Válogatás ürügyén remek alkalmunk nyílik néhány külön- Az adatbázisok használatakor szinte naponta kell meglévő
leges függvény, illetve művelet bemutatására, hiszen a rekordjainkat módosítani, esetleg egyet-egyet megszűn-
WHILE és FOR paraméterekben megadott feltételek sze- tetni, vagy új rekordokat az adatbázisba illeszteni, azaz a
repelhetnek sok más parancs után is. rekordokat naprakész állapotban kell tartani. Ezt a tevé-
Tekintettel arra, hogy a leggyakrabban karakteres mező- kenységet nevezhetjük az adatbázis karbantartásának.
vel dolgozunk, ebben kell a legtöbbször válogatni is. Ez-
zel kapcsolatban legfontosabb, amit meg kell jegyeznünk, 5.6.1. Rekordok hozzáfűzése, módosítása
hogy a számítógép számára pl. a „b” és a „B” betűk annyira Az adatbázis végéhez az
különböznek egymástól, mint mondjuk egy újszülött vízi-
ló a saját anyjától: több közös vonásuk van, de semmi- APPEND
képp sem tekinthetők azonosnak.
parancs segítségével új rekordokat fűzhetünk (a parancs
Ha rákeresnénk a „címke” cikknévre a következő utasítás- végrehajtása kísértetiesen hasonló a CREATE parancsban
sal: végrehajtott rekordfeltöltéshez).
Az adatbázis belsejébe új rekordot szúrhatunk be a
LIST FOR CIKKNEV=”CIMKE”
INSERT [BEFORE] [BLANK]
Akkor bizony a „címke” nem jelenik meg, mivel az adat-
bázisunkban kisbetűvel írtuk, és mi nagybetűvel kerestünk panccsal. Opció nélkül az aktuális rekord mögé helyezi el
rá. A probléma megoldására használhatjuk a nagybetűssé az új rekordot. BEFORE opcióval (before = előtt) az aktuá-
konvertáló „!” függvényt: lis rekord elé kerül az rekord (a rekordmutató nem mozdul
el, a mögötte elhelyezkedő rekordok eggyel hátrébb lép-
LIST FOR !(CIKKNEV)=”CIMKE” nek, eggyel megnő a sorszámuk). A beszúrás után rögtön
feltölthetjük adatokkal a rekordot (hasonlóan az APPEND
(Az egyenlőség megvizsgálása előtt a „cikknev” mező tar- parancsnál látottakhoz). Amennyiben nem kívánjuk az új re-
talmát a dBASE „fejben” átalakítja nagybetűssé és így végzi kordot adatokkal feltölteni, csak egy üres rekordot kívánunk
el az összehasonlítást. A mező tényleges tartalma nem beszúrni az adatbázisunka, használjuk a BLANK opciót.
változik.)
Létező rekordjainkat az EDIT vagy CHANGE parancs
segítségével módosíthatjuk, a két parancs azonos para-
Természetesen senki nem akadályoz meg benne, hogy méterekkel rendelkezhet, működésük némileg eltérő. Az
akár összevont feltételeket is vizsgáljunk a logikai ÉS / EDIT utasítással teljes képernyős módban szerkeszthetjük
VAGY fügvények segítségével: a rekordot:
LIST FOR CIKKNEV=”címke” .or. CIKKNEV=”tuzogep”
LIST FOR HELY=”11.23” .AND. AR>10 EDIT - a kívánt rekordtól kezdjük a szerkesztést és foly-
Nagyon hasznos lehet szöveges adatok keresésénél tathatjuk addig, amíg ki nem lépünk belőle (CTRL+Q)
a „$” relációs operátor, amellyel rész-karakterláncokat ke- (Nem támogatja a dBase II összes változata!)
reshetünk. Keressük meg például, milyen tintáink vannak EDIT x - az x rekordtól kezdjük a szerkesztést.
készleten (melyik cikknévben szerepel a „tinta” karakter-
lánc): A CHANGE parancs használata némileg összetettebb. Itt
LIST CIKKNEV,AR FOR „tinta” $ CIKKNEV nem, teljes képernyős módban szerkeszthetjük a feltéte-
A „$” fügvény arra is alkalmas, hogy egy string tetszőle- leinknek megfelelő rekordjaink kívánt mezőjét:
ges részét kiolvassuk:
$ (KIF. vagy VÁLTOZÓ vagy KARAKTERLÁNC,KEZDET,- CHANGE [<érvényességi kör>] FIELD <mezőlista>
HOSSZ)
Példa: ? $(„Enterprise”, 5,4) A parancsban használható a WHILE és FOR paraméter.
Részkarakter-láncokat kereshetünk egy tetszőleges ki- Vegyük észre, hogy a FIELD szó nem hagyható el! Ezzel
fejezésben a „@” fügvénnyel: az utasítással a „KARTON” állományunkban könnyen mó-
@ (karakterlánc1,karakterlánc2) dosíthatjuk a 100Ft-nál drágább termékek árát:
@ (változó1,változó2)
Például a ? @ („ABLAK”,”KISABLAK”) kifejezés értéke CHANGE FOR AR>100 FIELD AR
4 lesz. Folytatjuk!