HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

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.


Cikksorozat



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!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |