HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Keresési módszerek adattáblákban


Keresés 1. rész

Példaprogram letöltése

6355 bájt

Amikor egy olyan alkalmazást készítünk, ami egy adatbázist használ, akkor biztosan előfordul olyan eset, hogy keresnünk is kell abban az adatbázisban. Ebben a cikkben azt vizsgáljuk, hogy milyen lehetőségeink vannak erre.
A példaprogram futtatásához szükség van a Delphi által telepített példa adatbázisra, amely a DBDEMOS alias alatt érhető el!

Egy adatbázisban többféleképpen is kereshetünk, most a leggyakrabban használt módszereket nézzük meg.

A Locate függvénnyel tetszőleges mezőben vagy mezőkben kereshetünk. A függvény deklarációja így néz ki:
function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions):
    Boolean;
A KeyFields paraméterben kell megadni azoknak a mezőknek a nevét, amiben keresni szeretnénk. Ezeket pontosvesszővel kell elválasztani egymástól. A KeyValues paraméterben meg kell adni a keresett adatot. Mivel ez egy Variant típusú paraméter, ezért bármilyen típusú adatot megadhatunk, csak arra kell figyelni, hogy az a mező típusával egyező legyen. Ha több mezőben is keresünk, akkor a VarArrayOf függvénnyel kell a keresett adatokat megadni:
Table1.Locate('NEV;KOR', VarArryOf(['Kovács', 30], [loCaseInsensitive]);
Az Options paraméterben megadhatjuk, hogy a sztring típusú adatoknál a kis- és nagybetűk egyformák legyenek-e (loCaseInsensitive), illetve, hogy a keresett adatnak egy részletére keresünk-e rá (loPartialKey). Az alábbi példa megkeresi az összes "Kov"-val kezdődő nevet, függetlenül attól, hogy kis- vagy nagybetűkkel van-e megadva (pl. "KOVÁCS").
Table1.Locate('NEV', 'Kov', [loCaseInsensitive, loPartialKey]);
A visszatérési érték true, ha sikerült a megadott feltételeknek megfelelő rekordot találni. Ebben az esetben rá is pozícionál a rekordra. A kereséshez automatikusan felhasználja az indexeket.

Egy másik keresési módszer az, amikor egy megadott kulcs szerint keresünk. Ehhez a FindKey függvényt használhatjuk. Ez mindig az IndexFieldNames illetve IndexName property-kben megadott kulcs szerint keres. Ha nincs megadva itt semmi, akkor az elsődleges kulcs szerint keres.
function FindKey(const KeyValues: array of const): Boolean;
A KeyValues paraméterben kell megadni a keresett adatokat abban a sorrendben, ahogyan a mezők követik egymást a kulcsban. A függvény visszatérési értéke true, ha talált a feltételnek megfelelő rekordot, ebben az esetben rá is pozícionál.
Az alábbi példa egy számla tételt keres. Az SZLASZAM mező a számlaszámot, a TETEL pedig a tételszámot tartalmazza:
Table1.IndexFieldNames:='SZLASZAM;TETEL';
Table1.FindKey(['2001/001234', 2]);

A harmadik keresési módszer, amit most bemutatunk eltér az előbbiektől. A Lookup függvény nem true vagy false értéket ad vissza, hanem a megtalált rekord megadott mezőinek tartalmát.
function Lookup(const KeyFields: String; const KeyValues: Variant; const
 ResultFields: String): Variant;
A KeyFields és KeyValues paraméterek ugyanúgy használandók, ahogy a Locate függvénynél. A ResultFields paraméterben meg kell adni azoknak a mezőknek a neveit, amelyeknek tartalmára kíváncsiak vagyunk, természetesen pontosvesszővel elválasztva. A függvény visszatérési értéke a ResultFields-ben megadott mező, vagy mezők tartalma lesz, ha megtalálta a rekordot.
var
  kor: integer;
…
kor:=Table1.Lookup('NEV', 'Kovács', 'KOR');
if not VarIsNull(kor) then ShowMessage('Kovács életkora: '+IntToStr(kor));


Cikksorozat

#IDKategóriaCikk címeSorozat
1063DelphiInterbase 6 alkalmazása Delphi-ben1. rész
1072DelphiInterbase 6 alkalmazása Delphi-ben2. rész
1084DelphiInterbase 6 alkalmazása Delphi-ben3. rész
1092DelphiTIBTable komponens4. rész
1102DelphiTIBTransaction komponens5. rész
1111DelphiTIBQuery komponens6. rész
1120DelphiTIBStoredProc komponens7. rész
1128DelphiTIBDataSet komponens8. rész
1141DelphiTIBSQL komponens9. rész
1150DelphiTIBSQLMonitor komponens10. rész
1159DelphiTIBUpdateSQL komponens11. rész
1167DelphiIBEvents komponens12. rész
1177DelphiIBDatabaseInfo komponens használata13. rész
1183DelphiTIBConfigService komponens14. rész
1192DelphiTIBSecurityService komponens15. rész
1204DelphiTIBServerProperties komponens16. rész
1213DelphiTIBBackupService komponens17. rész
1222DelphiTIBRestoreService komponens18. rész
1231DelphiTIBValidationService komponens19. rész
1240DelphiTIBStatisticalService komponens20. rész
1249DelphiTIBLogService komponens21. rész
1258DelphiTIBUninstall komponens22. rész
1267DelphiInterBase Express komponenscsomag23. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 459. 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 |