260 likes | 496 Views
Delphi programozás alapjai. Nagyváradi Anett anettn@morpheus.pte.hu http://morpheus.pte.hu/~anettn PTE PMMK. Delphi programozás. Delphi programozás. 5. ELŐADÁS. Adatbázis kezelés Delphiben SQL lekérdezések. Delphi programozás. SQL.
E N D
Delphi programozás alapjai Nagyváradi Anett anettn@morpheus.pte.hu http://morpheus.pte.hu/~anettn PTE PMMK Delphi programozás
Delphi programozás 5. ELŐADÁS Adatbázis kezelés Delphiben SQL lekérdezések
Delphi programozás SQL Structured Query Language – adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: • Utasítások tetszés szerint tördelhetők • Utasítások végét pontosvessző zárja • Kisbetű nagybetű használata egyaránt lehetséges • Listában lévő elemeket vesszővel választjuk el • Egymásba ágyazhatók az utasítások
Delphi programozás SQL műveletek Matematikai: +,-,*,/, **, ^ Stringműveletek: +,||,& Bináris műveletek: NOT,AND,OR Összehasonlítás: <,>,=,!=, <>,NOT= Predikátumok: IS, LIKE, BETWEEN…AND, IN, CHECK, WHERE, HAVING, GROUP BY, ORDER BY
Delphi programozás SQL feltételek Lokális (egy mezőt érintő) integritási feltételek : PRIMARY KEY – elsődleges kulcs REFERENCES tnev – kapcsolókulcs valamely másik táblára NOT NULL – a mező értékét nem hagyhatjuk üresen UNIQUE – mezőérték a táblában egyedi CHECK (feltétel) – mezőre megadott ellenőrző feltétel pl. CHECK (ar > 0) DEFAULT ertek – alapértelmezett értéket rendelünk a mezőhöz Globális (több mezőt érintő) integritási feltételek: PRIMARY KEY (mezo1, mezo2, ..) – összetett kulcs FOREIGN KEY (mezo1, mezo2, ..) REFERENCES tnev – összetett idegen kulcs CHECK (feltétel) – több mezőre vonatkozó értékellenőrzés pl. CHECK (netto < brutto) http://edu.bzlogi.hu/mdb/download/gyak_03_sql.doc
Delphi programozás SQL adatdefiníciós utasítások Az adatbázis szerkezetének megváltoztatására: CREATE - táblák létrehozása ALTER - táblák szerkezetének megváltoztatása DROP - táblák törlése RENAME - táblák átnevezése TRUNCATE - táblák csonkítása INSERT - új sorok beszúrása DELETE - utasítás sort vagy sorokat töröl
Delphi programozás SQL adatkezelő utasítások Adatok olvasására az adatbázisból: SELECT - adatlekérdezés INSERT - adat létrehozása UPDATE - adat változtatása DELETE - adat törlése
Delphi programozás Példák INSERTINTO szemely VALUES (‘Szabolcs', ‘Miskolc‘, 20213456); UPDATE szemely SET nev=‘Katalin' WHERE ID=5; DELETEFROM szemely WHERE ID=30;
Delphi programozás Szintaktika SELECT oszlop neve FROM tábla neve WHERE feltételek ORDER BY oszlop nevek; FROM - azt a relációt adja meg, amelyre a lekérdezés vonatkozik WHERE - feltétel, a logikai kifejezés igaz esetén, kiválasztja a rendszer a megfelelő rekordokat
Delphi programozás Szintaktika BETWEEN...AND - operátor esetén a feltétel két határ által megadott intervallumban található SELECT * FROM tabla WHERE mez between 40 and 80; LIKE - operátor azt ellenőrzi, hogy az értékek megfelelnek-e a megadott karaktermintának SELECT * FROM tabla WHERE nev LIKE ‘Kata';
Delphi programozás Szintaktika ORDER BY - utasításrész a SELECT utasítás utolsó része, egy vagy több oszlop szerint rendezi az eredménytáblát. SELECT * FROM szemely WHERE varos LIKE ‘Pécs' ORDER BY nev;
Delphi programozás Példák SELECT tabla1.oszlop, tabla2.oszlop FROM tabla1, tabla2 WHERE tabla1.oszlop1=tabla2.oszlop2; SELECT * FROM szemely; SELECT nev,alkotascim,datumk,tema FROM festmeny,festo WHERE festo.idf=festmeny.idfand nev LIKE 'Matisse%';
Delphi programozás Szintaktika SELECT idk,festo.idf,nev,alkotascim FROM festmeny,festo WHERE festmeny.idf=festo.idf and datumk<1900 and tema LIKE 'mitológikus kép' ORDER BY 4; SELECT * FROM festmeny WHERE tema IN ('enteriőr','csendélet');
Delphi programozás Szintaktika SELECT COUNT (*) FROM festo WHERE nemzetiseg LIKE 'francia'; SELECT alkotascim, datumk AS "készült",nev AS "festette" FROM festmeny,festo WHERE festo.idf=festmeny.idf and idk<20;
Delphi programozás Szintaktika SELECT * FROM festmeny WHERE alkotascim ~ 'puszta'; Beágyazott lekérdezés: SELECT nev,alkotascim,datumk FROM festo,festmeny WHERE festo.idf=festmeny.idf and datumk=(select MIN(datumk) from festmeny);
Delphi programozás SQL utasítások Delphiben Delphi alkalmazásokban a TQuery komponens segítségével futtathatunk SQL utasításokat Fajtái: • DDL : Data Definition Language – DB szerkezet módosítása • DML : Data Manipulation Language – DB adatainak kezelése • DCL : Data Control Language – egyéb DB kezelési feladatok Végrehajtásukat a BDE irányítja
Delphi programozás TQuery komponens Tulajdonságai: • DataBaseName – adatbázis komponens vagy álnév • DataSource – paraméteres lekérdezéseknél, az az adatforrás, ahonnét a paraméterek értéke szármatik • SQL – maga a forrás • Active – tervezési időben látható eredmény
Delphi programozás TQuery komponens használata • Helyezzünk el egy TQuery komponenst az adatmodulon • DataBaseName tulajdonságát állítsuk be • Írjuk be az SQL utasítást • Ha az eredményék ki akarjuk iratni, akkor irányítsunk rá egy DataSource komponenst • Az adatmegjelenítési elemeket ehhez a DataSource-hoz kell majd kapcsolnunk
Delphi programozás SQL megadása futási időben Dinamikus lekérdezés is generálható úgy, hogy a felhasználói igények alapján felépített lekérdezést képező SQL utasítást, string-ként a TQuery komponens SQL tulajdonságába tesszük. Pl.: Query1.SQL.Clear;//kitörli a meglévő utasítást Query1.SQL.Add(‘Select * from tabla’);//hozzáfűz Query1.Open; // megnyitja
Delphi programozás SQL megadása futási időben Ha a felhasználó által bevitt adatok alapján szeretnénk módosítani a lekérdezést: procedureTForm1.Button1Click(Sender: TObject); var s:string; begin s:= Edit1.Text; Query1.SQL.Clear; Query1.SQL.Add(‘Select * from tabla where a=’’’+s+’’’;’); Query1.Open; end;
Delphi programozás SQL megadása futási időben Fájlból is betölthető a lekérdezés: procedure TForm1.Button1Click(Sender: TObject); begin Query1.SQL.LoadFromFile(‘filenev.SQL’); Query1.SQL.Open; end;
Delphi programozás Tábla tartalmának végigjárása DataModule.TáblaNév.DisableControls; //hozzáférés letiltás DataModule.TáblaNév.First; //első elemre ugrás While not DataModule.TáblaNév.Eof do begin ... // utasítások megadása DataModule.TáblaNév.Next; //következő elemre ugrás end; DataModule.TáblaNév.EnableControls; //hozzáférés engedélyezés
Delphi programozás Táblához hozzásfűzés – futási időben DataModule.TáblaNév.Append; //hozzáfűzés kezdete DataModule.TáblaNév.FieldByName(‘mezőnév’).AsTípus:=...; //pl. feltételben az adott mező adott típusként való vizsgálata DataModule.TáblaNév.FieldByName(‘mezőnév’).Value:=...; //adott mező értéke szerint való vizsgálata DataModule.TáblaNév.Post; //utasítás végrehajtás
Delphi programozás Feladat Készítsen alkalmazást, mely telefonkönyv szerűen működik. Az adattábla tartalmazza a személyes adatokat név, szül. év, szül. dátum, lakhely, irányítószám, utcanév, házszám, telefon körzetszám, telefonszám, stb. A tárolt adatokat jelenítsük meg felhasználóbarát felületen. Legyen lehetőségünk az adatok adminisztrációjára – új személy felvétele, törlés, módosítás. Az alkalmazás adjon lehetőséget név szerinti, körzetszám szerinti, életkor szerinti, stb. keresésre az adatbázisban!
Delphi programozás Segítség – SQL http://hu.wikipedia.org/wiki/SQL_programozási_nyelv