|
|
Lookup mező létrehozása adatbázishoz futási időben
|
|
Példaprogram letöltése
6709 bájt
|
Múlt héten létrehoztunk egy adatbázishoz egy kalkulált mezőt futási időben. Most azt nézzük meg, hogy miként hozhatunk létre lookup típusú mezőt szintén a program futása közben.
A lookup típusú mező segítségével lehetőségünk nyílik arra, hogy létrehozzunk egy olyan virtuális mezőt, mely épp úgy viselkedik, mintha fizikailag az adatbázis része lenne. Valójában azonban nem az, a mező értékeit egy másik adatbázisból vehetjük. Így például megvalósítható az, hogy az első adatbázisban csak egy kódszámot helyezzünk el, mely hivatkozik egy másik adatbázisra, ahol a kódszám mellett egy másik mezőben ott van a tényleges érték is, amelyre szükségünk van.
Gyakorlati példa lehet erre az, hogy van egy adatbázisunk melyben nyilvántartjuk az ügyfeleink adatait. Ekkor egy adatbázisban, ahol szükség van rekordonként hivatkozni egy-egy ügyfélre, ott nincs értelme az ügyfél összes adatát elhelyezni, elegendő csupán egyetlen kód szám, amely egyértelműen azonosítja az ügyfelet.
|
Az új mezőt lookupb néven hozzuk létre. Ezért mielőtt ezt megtennénk a FindField függvénnyel ellenőrizzük, hogy nem lett-e még létrehozva.
Ha még nincs, akkor egy TStringField típusú objektumot hozunk létre.
Itt a DisplayLabel property-ben megadható, hogy milyen szöveg jelenjen meg a DBGrid fejlécén, ennél a mezőnél.
A FieldKind property-ben adhatjuk meg a mező típusát. Mivel lookup típusú mező létrehozásán fáradozunk, így itt a fkLookup konstanst használjuk.
A LookupDataSet property-ben kerül az az adatbázis megadásra, ahonnan az adatokat kell venni (pl. ez lenne az ügyfél tábla).
A LookupKeyFields property-ben adjuk meg, hogy melyik mező az a lookup táblában, amelyben a kódot találja a program (pl. ez lenne az ügyfél tábla kód mezőjének neve).
A LookupResultField property-ben választjuk ki, hogy visszatérési értéknek mi kerüljön megadásra. Az itt megadott mező tartalma jelenik majd meg a lookup mező értékeként (pl. itt lehetne választani az ügyfél tábla azon mezőjét, mely az ügyfél nevét tartalmazza, ekkor a DBGrid-ben az ügyfél neve jelenik meg ennél a mezőnél).
A KeyFields-ben kell megadnunk azt a mezőt, mely az első adatbázisban tárolt kód mezőt takarja (pl. ehhez a táblához készítjük a lookup mezőt, ez lesz az a mező, ahol az ügyfél kód számát tároljuk).
A FieldName property-ben kell megadnunk a létrehozandó lookup mező nevét. A létrehozáskor erre a névre kerestünk rá, hogy létezik-e már.
Végül a DataSet property-ben adjuk meg azt az adatbázist, melyhez az új mezőt készítjük.
A mező létrehozása előtt le kellett zárnunk az adatbázist, ennek végeztével pedig ismét megnyithatjuk.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2000 évkönyv 96. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|