|
|
IBEvents komponens
Interbase 12. rész
|
|
Példaprogram letöltése
4821 bájt
|
Ezen a héten megvizsgáljuk, hogyan tudunk az IBEvents komponens segítségével elfogni az adatbázisunk által generált eseményeket.
A komponens lehetővé teszi, hogy IBX alapú alkalmazásunkban regisztráljuk a számunkra fontos szerver által küldött eseményeket. Az InterBase eseménykezelő mechanizmusa lehetőséget biztosít alkalmazásunknak, hogy válaszoljon eseményekre, az adatbázisban bekövetkezett változásokra, amelyeket akár egy másik futó, konkurens alkalmazás hozott létre. Mindezt plusz kapcsolatok nélkül elvégzi az adatbázis-kezelő, valamint a konkurens alkalmazással sem kell kapcsolatban állnunk. Természetesen ez a folyamatos figyelés CPU időt követel, de ennek mértéke nem számottevő.
A komponens segítségével tehát azt mondhatja az alkalmazásunk, hogy értesítsenek, ha X, Y vagy Z esemény bekövetkezik. Ha bármilyen regisztrált esemény végbemegy, a szerver értesítést küld programunknak és kiváltja az OnEventAlert eseményt.
A komponenst az eseménykezelő segítségével használhatjuk. Az eseménykezelő karbantartja a triggerek vagy tárolt eljárások által küldhető események listáját és nyilvántartja, hogy mely események után érdeklődnek a programok. Amikor egy új esemény postázódik, a kezelő értesíti erről a megfelelő alkalmazásokat.
A komponens használata
- Létre kell hozni egy olyan triggert vagy tárolt eljárást, amely egy eseményt képes postázni.
- Egy IBDatabase és egy IBEvents komponenst helyezzünk a Form-ra, és állítsuk be a tulajdonságaikat.
- Az IBEvent komponens listájához kell adnunk az eseményt és regisztrálni kell az eseménykezelőben.
- Az OnEventAlert esemény kódját meg kell írnunk.
Az eseményeket triggerek és tárolt eljárások válthatják ki, de csak egy tranzakció alatt, amely felügyeli a postázást is. Az InterBase általában megszűri az eseményeket mielőtt postázza azokat. Ez azt jelenti, hogy ha 20-szor következik be egy megadott esemény a tranzakció alatt, miután ez a tranzakció véglegesítődik, programunk csak egy értesítés fog kapni a figyelt eseményről.
Esemény figyelésének beállítása
Az Events tulajdonság melletti gombra kell kattintani ahhoz, hogy az eseménylistához hozzá tudjunk adni egy további eseményt. Minden komponens csak 15 eseményt tud kezelni, de ez a határ könnyen átléphető több komponens alkalmazásával. Futási időben a következő kód segít:
IBEvents1.Events.Add(’ESEMENYNEV’);
Ha túl sok eseményt próbálunk a listához adni, a rendszer kivételt vált ki.
Eseménykezelő írása
Az OnEventAlert esemény hívódik meg, ha egy InterBase eseményt fogad a komponens. Az EventName változó az esemény nevét tartalmazza. Az EventCount változóból megtudhatjuk, hogy pontosan hányszor is következett be az esemény az OnEventAlert utolsó hívása óta.
Ha nem szeretnénk egy eseményről a későbbiekben értesítést kapni, állítsuk igazra a CancelAlert jelzőt. Az eseménykezelőben nem hívhatjuk meg a komponens metódusait.
Ez az esemény a programunkon belül egy külön szálon fut.
A komponens tulajdonságai, eseményei, metódusai
Tulajdonságok
- Database: Melyik adatbázist használja a komponens.
- Events: Azon események listája, amelyekről értesítést várunk.
- Queued: A tulajdonság jelzi, ha vannak sorbanálló események.
- Registered: Van-e regisztrált eseményünk.
Események
- OnEventAlert: Ez az esemény aktiválódik, ha értesítést kap a program egy figyelt esemény bekövetkezéséről.
Metódusok
- CancelEvents: Segítségével tájékoztatjuk a rendszert, hogy nem kívánunk több értesítést kapni az adatbázis eseményeiről.
- QueueEvents: Elindítja az esemény jelzését az alkalmazásunk irányába.
- RegisterEvents: Az Events tulajdonság összes elemét regisztrálja és meghívja a QueueEvents metódust, hogy elkezdődjön a folyamat.
- UnRegisterEvents: Megszüntetjük a lista elemeire vonatkozó regisztrációt. Meghívja a CancelEvents metódust.
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
Delphi Software Offline 2001 évkönyv 478. 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!
|