Néháy gondolat a nyelvcsaládról:
DBase:
A dBase nyelv gyakorlatilag az adatbázisokkal egyidõs, egyike a
legelsõ adatbáziskezelõ nyelveknek. Mint ilyen, nem is tekinthetõ
igazán programozási nyelvnek, pusztán az adatbázisokon gyakran végzett
mûveletek leírására és fájlban való rögzítésére szolgáló eszköznek.
Ez volt az első széleskörben elterjedt adatbázis kezelő program.
Az alap ötlet Wayne Ratliff-tól
származik aki 1978-ban assembly-ben írt egy adatbázis programot (még
CP\M alá) hogy segítse az irodai futball-házibajnokságot.
A programozás fejlõdésével az adatbáziskezelõkkel szemben is egyre
nõttek az igények (pl.: ne interpretált legyen a nyelv). Ennek
következménye 1987-ben a Clipper, késõbb a FoxBase és a ma is
használatos FoxPro. Ezeket a nyelveket nevezzük dBase alapúaknak, mivel
mindegyik a dBase nyelvbõl fejlõdött ki. Olyannyira, hogy a dBase a
III. Plus verziójáig, a Clipper az 5.02-es verziójáig, a FoxBase minden
verziója, illetve a FoxPro 1.* verziói egy az egyben kompatibilisek
egymással. Ez alapján a továbbiakban tárgyalt nyelv legyen a dBase III.
Plus, illetve a Clipper 5.0 vagy afeletti verziója.
Clipper:
Magyarországon nemrég még nagyon elterjedt nyelv volt a Clipper.
Népszerûségét õsének, a dBase nyelvnek köszönheti. A relációs
adatbáziskezelõ nyelvek közül ez nyújtotta a legnagyobb rugalmasságot
és szabadságot a programozók számára. Az interpreteres dBase-verziók
után a fordítóprogramos Clipper megjelenése minõségi elõrelépést
jelentett, ugyanakkor megtartotta, sõt továbbfejlesztette a dBase
adatbáziskezelõ nyújtotta összes szolgáltatást. Elõnyeit látva
(gyorsabb futás, az egyetlen EXE állományba áttehetõ programrendszer, a
rendelkezésre álló adatbáziskezelõ verziótól független alkalmazási
lehetõség, a segédprogramok, a C illetve Assembly rutinok beépítésének
lehetõsége stb.) egyre többen áttértek használatára. Elterjedésében
azonban jelentõs szerepe volt annak, hogy a korábbi adatbázisokba és
programokba minimális változtatást kellett végrehajtani. Az 1987. õszi 5.0 verziószámmal ellátott Clipperben - bár még nem
objektumorientált nyelv - az objektumorientált programozás egyre több
elemét alkalmazzák. A továbbiakban a Clipper-rõl említettek az 5.0 vagy
afeletti verziókra vonatkoznak.
FoxPro:
A Visual FoxPro egy egyszerû programfejlesztésre és
adatbázis-kezelésre szánt környezet, a Microsoft Visual
Studio része. Maga a nyelv szorosan összefügg a
fejlesztõi környezettel, segítségével gyors, drag-and-drop
stílusú programfejlesztés valósítható meg. A Visual FoxPro dBase alapú nyelv,
ez a szintaxisában és adatbázis kezelési stílusában tükrözõdik. Negyedikgenerációs nyelv, mivel objektum-orientált, általános célú,
támogatja az adatbázis-rendszerek fejlesztését, és a vizuális
programfejlesztést,
segítségével könnyen létrehozható egy önmagához hasonló rendszer.
Nyelvezete egyszerû, sok kulcsszó formájában megjelenõ paranccsal,
a hangsúly inkább azon van, mit szeretnénk elérni, nem azon, hogy
hogyan. Könnyen megtanulható olyanok számára is, akik újak a programozásban. A FoxPro egy interpretált nyelv. Futás közben új erõforrásokat,
például
kódrészleteket tartalmazó fájlokat tölthetünk be, illetve
módosíthatjuk a kódot például makró-helyettesítésekkel. A programok futtatásához egy futási környezet szükséges. Írhatunk programokat a hagyományos módon, vagyis a kódrészletek
forrásfájlokban való
elhelyezésével. Megadhatunk egy kezdõ procedúrát, ekkor a program
futása itt
indul. Azonban leggyakrabban vizuális alkalmazások fejlesztésére
használják.
Definiálhatunk ablakokat (formokat), ezek képezik a
felhasználói felületet. Megadhatunk egy kezdõ formot,
ekkor a program futtatása ennek a formnak a létrehozásával és
megjelenítésével indul. Ez kezdeményezheti újabb formok megjelenítését,
a rajtuk lévõ vezérlõelemek
különbözõ tevékenységeket végezhetnek, például megjeleníthetik és
módosíthatják
az adatbázisban tárolt adatokat.
A dBase nyelvcsalád története:
dBase:
A dBASE volt az első széles körben használt adatbázis kezelő rendszer mikroszámítógépeken, melyet az
Ashton-Tate adott ki eredetileg CP/M operációs rendszerre, ami még Intel80/85 és Zilog 80 alapú prcesszorokra íródott. Később
megjelent apple II, Apple Macintosh, UNIX, Vms és DOS alá, ahol már az egyik legtöbbet eladott software termék volt éveken keresztül.
A dBASE eredeti tervezője Wayne Ratliff volt. 1978-ban - ekkor a Jet Propulsion Laboratory -ban dolgozott, -
Ratliff assembly -ben írt egy adatbázis programot CP/M alapú mikroszámítógépekre, hogy megnyerje az irodai futbal-fogadásokat. A
dBASE -t a Jeb Long JPLDIS -re alapozta (Jet Propulsion Laboratory Display Information System) és "Vulcan" -nak nevezte el, Mr. Spock után
a Star Trek -ből.
A 1980 -as évek elején Geroge Tate az Ashton-Tate -től kereskedelmi megegyezést kötött Ratliff -el. A
Vulcan ekkor kapta a dBASE nevet és hamar nagy sikerre tett szert.
Már az 1980 -s évek közepétől kezdve sok más cég is megalkotta a saját változatát. Ezek voltak a
FoxPro (most Visual FoxPro), Arago, Force, Recital, dbFast, dbXL, Quicksilver, Clipper, Xbase++, FlagShip és Harbour. Ezeket a nyelveket
együtt, nem hivatalosan, xBase -nek, vagy XBase -nek nevezzük.
A dBASE -t sosem sikerült portolni Microsoft Windows -ra ennek köszönhetően jöttek létre a
Paradox, Clipper, FoxPro és Microsoft Access programok és nyelvek.
A dBASE -t 1991 -ben eladták a Borlandnak, ami később a jogokat továbbadta az újonnan alakult dBASE
válalatnak.
A Clipper - legenda:
Van egy legenda a CA_Clipper nevének eredetéről.
Egy nap, egy kaliforniai tengerparti étteremben ebédelt az Ashton-Tate
egyik alkalmazottja egy konzulens barátjával. Arról beszélgettek, hogy
az Ashon-Tate nem készíett fordítót a dBase-hez. Ennek okán felmerült,
hogy egy új céget kellene
alapítani és megírni a fordítót. Ahogy nőt az izgalom, és egyre csak
jöttek az ötletek, felmerült a termék nevének kérdése!
Az egyikük felfigyelt a szalvétán lévő hajóra. Ez egy clipper (vitorláshajó) volt. Egy kecses, gyors és
elegáns jelenség, ami egyértelműen szimbolizálta mindazt amit ők
csinálni szerettek volna.
És mi legye a cég neve? A menü megadta a választ. Az étterem neve után - ami Nantucket Lighthouse volt
- a cég neve Nantucket's Clipper lett. :)
Foxpro:
A FoxPro-nak rövid, de dicsőségteljes élete volt.
1989-ben jelent meg a dBaseIII PLUS egy alternatívájaként, Dave Fulton - a Bowling Green State
University egyik professzora - 3. generációs termékeként.
Az első két termékét - a FoxBase-t és a FoxBase+ -t - azért írta, hogy az Ashotn-Tate dBase
termékének technológiáit magábaolvassza és kiegészítse.
A siker minden várakozást felülmúlt! Fox minden más xBase terméket messze maga mögött hagyott.
Az alábbi táblázat a FoxPro csúcsratörésének mérföldköveit mutatja:
Dec 1984 |
FoxBASE |
Dave Fulton és Bill Ferguson írta. A dBase funkcióit
ötvözi a fox gyorsaságával. |
Jun 1986 |
FoxBASE+ |
Egy megfizethetőbb, megbízhatóbb és gyorsabb alternatíva
dBase III. alkalmazások írásár.a
|
Sep 1988 |
:^( |
Az Ashton-Tate bepereli a Fox Software -t. |
Sep 1989 |
FoxPro 1.0 |
A dBase promptját felváltja a FoxPro parancsablaka. |
Jul 1991 |
FoxPro 2.0 |
Rushmore* optimalizálás, SQL, Varázslók, Projekt
Menedzselés, összetett indexelés.
|
Jun 1992 |
MS FoxPro 2.0 |
A Microsoft bekebelezi a Fox Software -t 1.36 millió
részvény felvásárlása révén($173M)
|
Jan 1993 |
FoxPro 2.5 |
Az első Windows-os FoxPro verzió megjelenése. Windows EXE
állományok előállítására alkalmas software csomag.
|
Jun 1993 |
FoxPro 2.5a |
Nemzetközi nyelvi támogatás.
(and multi-line Wait Windows) |
Sep 1993 |
FoxPro 2.5b |
Görög, Lengyel, Újzélandi és Cseh nyelv támogatása. |
Mar 1994 |
FoxPro 2.6 |
Jobb dBase kompatibilitás(több mint 50 parancs
továbbfejlesztése). Katalógus kezelés, még több Varázsló, valódi NULL
támogatás
|
Aug 1994 |
FoxPro 2.6a |
Fontos hibajavító kiadás, ami az "ESL" file -ok méretét 3
-ról 2.1 MB -re csökkenti. |
1995 |
- |
Dave Fulton nyugdíjba megy a Microsoft-tól |
Sep 1998 |
Patch 2.6a |
A microsoft megjeleníti a "nullával való osztás" javítást
FPW 2.6a -hoz |
Jul 1999 |
FoxPro 2.x |
A Microsoft megszünteti a
FoxPro 2.x programcsalád támogatását |
(*)
Rushmore
Optimalizálás: indexek használata a gyorsabb adatelérés érdekében.
Felhasználói felület
FoxPro:
Formok
A formok segítségével kommunikálhatunk a felhasználóval. Egyik
legjellemzõbb használatuk az adatbázisok tartalmának megjelenítése
illetve módosítása, de akár rajzolhatunk is egy formra, bár grafikai
alkalmazások fejlesztésére a sebessége miatt nem ajánlott.
Formokat megszerkeszthetünk a Form Designer segítségével interaktív
módon, vagy programból a
CREATE FORM és MODIFY FORM parancsokkal is.
A formokon vezérlõelemeket (control) helyezhetünk el. Ezek egy része
az ablakozó rendszerek fejlesztését támogató vizuális környezetekben
megszokott elemek, azonban sok kifejezetten az adatbázisok
manipulálásával kapcsolatos. A vezérlõelemeknek nevet adhatunk, amikkel
hivatkozhatunk rájuk. Egy form metódusában elõtag nélkül hivatkozhatunk
a rajta levõ controlokra, egy control az õt tartalmazó formra a
PARENT
kucsszóval hivatkozhat.
A vezérlõelemek tulajdonságait futás közben változtathatjuk, például
mozgathatjuk, elrejthetjük õket.
A
Form Designer segítségével új property-t és metódust is adhatunk a
formhoz.
A vezérlõelemek osztályaiból újabb osztályokat származtathatunk, új tagokkal és funkciókkal bõvítve azokat. Az így
kapott új vezérlõelemeket is elhelyezhetjük a formokon.
A
ControlCount és Controls property-k segítségével felsorolhatjuk a
formon elhelyezett kontrolokat.
A builderek segítségével megadhatjuk, hogy egy adott vezérlõelem
milyen adatokon manipuláljon. A formnak van egy adatkörnyezete (data
environment), ami azokat az adattáblákat tartalmazza, amit az adott
form kontroljai használni kívánnak. Ezt a Data Environment Designerrel
szerkeszthetjük. A builderekkel megadhatjuk, hogy egy vezérlõelem
melyik adattábla adatait jelenítse meg (például táblázat, vagy
legördülõ lista). Bizonyos vezérlõelemek, amelyek input fogadására is
képesek, megváltoztathatják az adattábla tartalmát is.
Egy formot a
DO FORM név WITH paraméterlista paranccsal
jeleníthetünk meg. A paraméterek az INIT metódusnak adódnak át. A
formot a Release metódusával zárhatunk be.
A Windows események hatására meghívódnak a formok és a rajta levõ
vezérlõelemek eseménykezelõ metódusai (például aktiválás, egér
kattintás). A Form Designerrel megírhatjuk ezen metódusok törzseit, ami
tulajdonképpen a kód nagy részét adja. Például gombok lenyomásának
hatására újabb formokat jeleníthetünk meg, kiszámíthatunk valamit,
elvégezhetünk adatbázis-kezelõ mûveleteket, nyomtatóra küldhetünk
információt, stb.
Környezeti paraméterek használata
Általánosságban elmondható, hogy az egyes parancsok és utasítások
hatása nagyban függ a környezeti paraméterek beállításaitól. Tehát a
környezeti paraméterek úgy funkcionálnak, mint a globális változók,
vagy a fordítási direktívák. Rajtuk keresztül tud kommunikálni a
programozó az interpreterrel, illetve ugyanazon program más környezeti
paraméter-beállításokkal más eredményt képes produkálni, következésképpen nagy hasznot
jelenthetnek a kódújrafelhasználásban.
A környezeti paraméterek beállítására szolgáló parancsok közönséges
utasítások, de könnyedén felismerhetõek, mert mindegyikük a SET kulcsszóval kezdõdik.
A környezeti paramétereknek sokféle csoportosítása lehetséges, válasszuk most a legkézenfekvõbbet.
Ez alapján kétféle környezeti paraméter létezik:
Kétállapotú környezeti paraméterek:
Ilyenkor, mint egy kapcsolót állíthatjuk a paramétert, eldöntve
ezzel, hogy kívánjuk-e használni az általa nyújtott funkciót, vagy sem.
Ilyenek például (a példákban mindig a kapcsoló alapértelmezett beállítása van nagybetûkkel írva):
SET CENTURY on|OFF |
a dátum típusú mezõk kiírásakor megjelenítõdjön-e az évezredet és évszázadot jelölõ karakter |
SET ECHO on|OFF |
az interpreter kiírja-e a program végrehajtása során a már végrehajtott utasításokat
(ez egy elég fontos paraméter, ha belegondolunk, hogy ezen korai rendszernél a
debug-olásnak semmilyen más eszköze nem volt) |
SET ESCAPE ON|OFF |
a program futásából ki lehet-e lépni az ESC billentyûvel |
SET DEVICE TO SCREEN|print |
a képernyõ vagy a nyomtató legyen-e az alapértelmezett kimenet |
SET SAFETY ON|off |
bizonyos adatbázismûveleteket nem, vagy csak jóváhagyással engedélyez
alapértelmezés szerint az interpreter (ilyen pl.: egy teljes tábla törlése avagy felülírása) -
természetesen ezen környezeti paraméter kikapcsolása igen veszélyes, mégis jó példa arra,
mekkora volt a programozó szabadsága |
További kétállapotú környezeti paraméterbeállításra szolgálnak a következõ eljárások:
SET BELL, SET CONFIRM, SET CONSOLE, SET CURSOR, SET DELIMITERS, SET EXACT, SET EXCLUDE,
SET FIXED, SET INTENSITY, SET PRINTER, SET SCOREBOARD, SET SOFTSEEK, SET UNIQUE.
Paraméteres Környezeti paraméterek:
Az ilyen környezeti paraméterek nem kétállapotúak, hanem valamely, állapotokkal nem jellemezhetõ információ
megadására szolgálnak. Általánosságban igaz az, hogy amennyiben ezeket a környezeti paramétereket paraméter nélkül
hívjuk meg, akkor törlõdik az utolsó beállításuk (pl.: Az üres SET PROCEDURE TO bezárja a nyitott eljárásfájlt).
Ilyenek például:
SET DATE ANSI|BRITISH|AMERICAN... |
itt lehet beállítani, hogy a dátum típusú adatokban az év, hó és nap jelzés milyen
sorrendben kövesse egymást (ANSI:ÉÉ/HH/NN, BRITISH:NN/HH/ÉÉ,...) |
SET PATH TO < útvonal > |
mi legyen az alapértelmezett útvonal, ahonnan az interpreter a fájlokat olvassa |
SET MARGIN TO < num.kif. > |
nyomtatáskor a baloldali margó szélessége karakterekben megadva |
SET DECIMALS TO < num.kif. > |
kiíráskor a numerikus adatok minimum hány tizedesjegy pontossággal jelenjenek meg |
SET PROCEDURE TO < file név > |
a fõprogramban használt eljárásfájl megadása |
További paraméteres környezeti paraméterbeállításra szolgálnak a következõ eljárások:
SET ALTERNATE, SET COLOR, SET DATE, SET DELIMITERS, SET EPOCH, SET FILTER, SET FORMAT,
SET FUNCTION, SET INDEX, SET KEY, SET ORDER, SET PRINTER, SET RELATION, SET TYPEHEAD
Környezet
dBase:
A dBase III PLUS-nak vannak már
úgyneveztett környezeti paraméterei, melyek különböző használati,
működési módokat tesznek lehetővé. Így lehetőség van a feladathoz,
a munkastílushoz legjobban illeszkedő környezet kialakítására. Ezeket a
beállításokat a CONFIG.DB file-ban tárolhajuk el, ami automatikusan
betöltődik a dBase minden egyes indulásakor.
A dBase III Plus adatbázis-kezelőt többféleképpen lehet használni:
- Menüvezéreltként az ASSIST program segítségével,amely hasonlóan működik, mint az operációs
rendszerek előtét programjai.
Segítségével a parancsokat teljes begépelésük nélkül indíthatjuk el
- A dBase-t használhatjuk interpreterként, ilyenkor a begépelt parancsaink azonnal
értelmeződnek,és amennyiben lehetséges, végrehajtódnak.
Hibáinkra az adatbázis-kezelő azonnal reagál a hibaüzenetek megjelenítésével.
- Egy, már elkészült dBase program használatán keresztül.
Clipper:
A Clipper már rendelkezik
elõfordítóval,
mely a fordítóprogram számára tartalmaz kiegészítéseket. Ezek lehetnek a következõk:
- Kapcsolódó állományok.
- Pszeudo függvények.
- Konstansértelmezések.
- Feltételhez kötött fordítás.
A fordítóprogram:
- Javított kódoptimalizálás, beleértve a konstans kifejezések
csoportosítását, a kifejezések rövidítését, és a nem elérhetõ kódok
figyelmen kívül hagyását.
- Új fordítási paraméterek, beleértve a feltételes fordítás
ellenõrzésével kapcsolatos opciókat; a szabvány parancskészlet
kikapcsolása vagy helyettesítése, a deklarációk ellenõrzése, és
üzenetküldése a nem deklarált változókról, az elõfordítóval kapcsolatos
információk kinyomtatása.
- Környezeti változó használható a saját fordítási paraméterek
állandósításához.
A szerkesztõprogram:
Az RTLink szerkesztõprogram a nagy
programoknál dinamikus overlay technika alkalmazását teszi lehetõvé. Újdonságai:
- A Clipper-fordítás utáni tárgykód dinamikus overlay-e.
- Belsõ és külsõ dinamikus overlay lehetõsége.
- a Clipper-tárgykód bõvítéses serkesztése.
- A könyvtárak és tárgyállományok elõszerkesztése.
- Futás közbeni kódkiosztás a könyvtárak elõszerkesztése alapján.
- A C és Assembly programok statikus overlay-je.
- Szintaktikai kompatibilitás a Microsoft Link és a PLINK86-Plus
szerkesztõkkel.
Forráskód nyomkövetõ (debugger):
- A megszakítási pontok a programfutás szünetét idézik elõ, amikor
a futás az illetõ ponthoz ér.
- Az idõzítési pontoknál megjelennek a képernyõn a változók és a
kifejezések értékei.
- A nyomkövetési pontok a program futásának szünetét idézik elõ, ha
a megadott változó vagy kifejezés értéke megváltozott.
- A hívási ablak lehetõvé teszi az aktív eljárások és
programblokkok szemrevételezését.
- A változók menet közben megtekinthetõk, illetve értékük
módosítható.
FoxPro:
A környezet (IDE) sok eszközt nyújt a
hatékonyság és egyszerûség érdekében.
A ProjectManager segítségével átláthatjuk a projektünk egyes komponenseit,
újakat adhatunk hozzá, módosíthatjuk azokat.
Az Application segítségével legenerálhatjuk egy
alkalmazás keretét,ami egy jó kiindulás lehet új projekt esetén.
A programfejlesztést úgynevezett
designer-ek
és
builder-ek segítik,
melyekkel az egyes komponenseket gyorsan és könnyen megtervezhetjük:
- Table Designer: adatbázis táblák létrehozása és módosítása
- Query Designer, View: lekérdezések megadása adattáblákon
- Form Designer: Ablakok (formok) tervezése, melyek
segítségével az adattáblák manipulálhatóak
- Report Designer: adatok megjelenítése és nyomtatása
- Database Designer: adatbázisok
tervezése, relációk megadása az adattáblák között
- Connection Designer: távoli adatbázisokhoz való csatlakozás
A program futása során látható felhasználói felületet a formok határozzák meg.
A builder-ek segítségével a formokon megjelenõ elemeket, és vezérlőiket tervezhetjük
meg.