230 likes | 326 Vues
Bese Antal 2006. http://toni.web.elte.hu/delphi. Adatbáziskezelés Delphi 5 alatt. 1. Bevezetés. Számítógépes adattárolás fájlokban . Az egész adatbázist egy fájlban (Pl.: Access, Interbase ,és a legtöbb SQL adatkiszolgáló)
E N D
Bese Antal 2006. http://toni.web.elte.hu/delphi Adatbáziskezelés Delphi 5 alatt
1. Bevezetés Számítógépes adattárolás fájlokban. • Az egész adatbázist egy fájlban (Pl.: Access, Interbase,és a legtöbb SQL adatkiszolgáló) • Az adatbázis felbontva táblákra, indexekre, ... (Pl.: Paradox, dBase) adatbázis könyvtárak táblák fájlok
Bevezetés folyt. • A Delphi adatbázis-alkalmazások nem közvetlenül kommunikálnak az adatbázisokkal, hanem valamilyen adatbázismotoron keresztül érik el az adatbázist. Delphi alatt a • Borland Database Engine (BDE), és a • Microsoft ActiveX Data Objects (ADO) használata terjedt el.
2. BDE (Borland Database Engine) • Számos adatforrást kezel, elérésüket közvetlen módon valósítja meg. • pl. dBase, FoxPro, Access, ... • Kapcsolatot tud létesíteni olyan adatbázis-kiszolgálókkal, mint az Oracle, DB2, Sybase, sőt kapcsolatba tud lépni ODBC meghajtókkal is (ekkor inkább az ADO-t használjuk). • Kifinomult cache-kezelés, stb..
3. Ado (Microsoft ActiveX Data Objets) • Microsoft fejlesztés... • A MS OLE Db adatelérési technológián alapul, amely elérést biztosít relációs és nem-relációs adatbázisokhoz, levelezési és fájlrendszerekhez, és egyedi üzleti objektumokhoz. • Nem igényli a BDE könyvtárait, de szükségesek hozzá az ADO/OLE DB futás idejű csomagjai (Windows 2000-től felfelé).
4. Hordozhatóság • Ha a BDE-megközelítést választjuk az adatbázis eléréséhez, akkor mindenkféleképpen telepítenünk kell a már megírt adatbázis-kezelő alkalmazásunk mellé a BDE-t is. • Éppen ezért érdemes valamilyen telepítés-előkészítő programot használnunk (Pl.: InstallShield, Inno Setup, ...).
Hordozhatóság folyt. • Ezek a programok könnyen konfigurálhatóak, • segítségükkel a felhasználó zökkenőmentesen telepítheti a BDE-t • A Delphi különféle licenszei foglalkoznaka BDE terjeszthetőségével - "elvileg" szabadon terjeszthető). • Az ADO ehhez képest nem igényel semmilyen új telepítést.
5. Az adatbázis létrehozása • Az adatbázis létrehozásának legegyszerűbb módja a Delphi 5-el szállított Database Desktop utility használata. • Első lépésként egy alias (másodlagos) nevet kell létrehoznunk, ami egy elérési utat jelent • Második lépésként pedig az adatbázisunkhoz tartozó táblákat kell megkonstruálnunk.
6. A Delphi adatbázis-komponensei • A komponenspaletta Data Acces (Adatelérés) lapján találhatóak azok az összetevők, amelyekkel a BDE-központú adatbázisokat használhatjuk. • Legtöbbjük nem látható komponens (adatkapcsolatok, táblák, lekérdezések, ...). • Az adatok megjelenítésére szolgáló komponenseket a Data Controls lapon találjuk.
7. Adatelérés a Delphiben • Az adatbázis eléréséhez mindenféleképpen szükségünk van egy adatforrásra, melyet a DataSource kompomenssel adhatunk meg. • A DataSource nem közvetlenül az adatbázisra, hanem egy DataSet (Adatkészlet) nevű komponensre hivatkozik(pl. egy tábla, lekérdezés, tárolt eljárás, … , ADO, InterBase vagy más egyéni adatkészlet).
8. Megvalósítás • Amint elhelyeztünk egy adatkészletet a formon, a DataSource komponens DataSet tulajdonságával hivatkozhatunk rá. • Segítség: az Object Inspector megadja az elérhető adatkészletek listáját.
9. A „Table” komponens • Az egyik legegyszerűbb módszer, hogy egy már meglévő adattáblánk tartalmát elérjük. • A komponens DatabaseName tulajdonságával kapcsolhatjuk össze az adatbázisunkkal. • Egy elérési utat, vagy egy fiktív alias nevet (másodnév) kell megadnunk • Az elérhető adatbázisokat szintén megjeleníti az Object Inspector. • A TableName tulajdonságban adhatjuk meg a megjeleníteni kívánt adattábla nevét.
10. A „Query” komponens • Nagyon hasonló a Table-höz • Az SQL nyelven alapuló lekérdezések megvalósításra használhatjuk. • A Table komponenssel ellentétben, csak a Database tulajdonságát kell állítanunk (a Tablename tulajdonságnak itt nem is lenne értelme).
11. Lekérdezések használata - a Query komponens • A lekérdezést a Query komponens Sql tulajdonságában tudjuk definiálni. Query1.Sql.Add('SELECT * FROM tabla;'); • A beírt lekérdezést letörölhetjük: Query1.Clear; • Lekérdezés lefuttatása Query1.Open; • Lekérdezés lezárása Query1.Close;
12. Az adatkészlet • Az adatkészletünknek többféle állapotai lehetnek, attól függően, hogy éppen milyen műveletet hajt(ott)unk rajta végre. • Az éppen aktuálisat a State tulajdonság jelöli, érdekesebb példák: • dsBrowse- az adatkészlet normál böngésző üzemmódban van, • dsEdit- az adatkészelt szerkesztő üzemmódban van, • dsInsert - új rekordot készülünk beszúrni (pl. az insert metódussal), • dsInactive- az adatkészlet le van zárva.
13. Összefoglalás - adatok elérése • Adatbázis létrehozása • Tervezési időben • Futási időben • Adatforrás összekapcsolása az adatbázissal • DataSourceDataSet • Adatbázis komponensek Databasename + Tablename
14. Adatok megjelenítése • A megszokott Windows-os adatkezelő komponensek nagy részének létezik olyan megfelelője, mely valamilyen módon kapcsolatban áll egy adatbázissal. • Érdemes áttanulmányozni a komponenspaletta Data Controls (Adatvezérlők) lapját. • Ezeket a komponenseket találhatjuk ott: DBGrid, DBNavigator, DBText, DBEdit, DBMemo, DBImage, DBListBox, DBComboBox, DBCheckBox, DBRadioGroup, DBRichEdit,DBCtrlGrid, DBChart.
Adatok megjelenítése folyt. • Egy új vezérlő elem. • DBNavigator - egy olyan gombgyűjtemény, amellyel könnyen mozoghatunk az adataink között, és adhatunk ki rájuk vonatkozó utasításokat (szerkesztés - edit, mentés - post, stb).
15. Adatmezők elérése • Field komponens (TField osztály egy példánya) • a Delphi a adatfüggő vezérlői közvetlenül az adatbázis mezőire vonatkozó Field obejktumokhoz kapcsolódnak. • Amikor adatkészletet nyitunk meg, akkor a Delphi automatikusan létrehozza őket már futási időben. • A táblák és lekérdezések ezeket a mezőket a Fields tulajdonságban tárolják (lényegében egy tömbben).
Adatmezők elérése folyt. • Pl. az elérésre: Table1.Fields[0].AsString Table1.FieldByName('mezo_neve').AsStringTable1.['mezo_neve'].AsString
16. Tervezési tipp - az Adatmodul használata • Eddig egy adatbáziskezelő program fejlesztése során az adatelérési és adatfüggő vezérlőket is felpakoltuk a formra. • Ez egy egyszerű program esetén elég, DE egy összetettebb/bonyolultabb feladatnál nagyon bonyolítja a dolgunkat (konzisztens tárolás, ...) • Ötlet: a nem látható vezérlőket tegyük egy tárolóba - adatmodul (TDataModul osztály).
Tervezési tipp - az Adatmodul használata folyt. • Csak tervezési időben létezik. • Fő felhasználási területe - adatelérési komponensek több form közötti megosztása. • Létezik egy ún. adatdiagram nézete, ahol alapvető UML-elemekkel találkozhatunk.