HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TIBDataSet komponens


Interbase 8. rész

Példaprogram letöltése

6427 bájt

A sorozat mai részében tekintsük át az IBDataSet komponens tulajdonságait, eseményeit és metódusait. Nézzük meg, hogy milyen szerep juthat a komponensnek az IBTable, az IBQuery és az IBSQL komponensek mellett, hiszen e négy komponensnek igen sok azonos funkciója van.
Az IBDataSet komponens legfontosabb feladata az, hogy valamilyen SQL utasítást futtassunk. Ezek általában a SELECT, DELETE, INSERT és az UPDATE, amelyeket külön tulajdonságok segítségével adhatunk meg. A komponens gyakran valamilyen adathalmazt szolgáltat eredményül (SELECT). A komponens a TDataSet-ből származik, így minden gond nélkül együttműködik az adatmegjelenítő komponensekkel.

A TIBDataSet komponens használata
  • Helyezzünk egy komponenst a Form-ra.
  • Állítsuk be a Database tulajdonságot egy TIBDatabase komponens segítségével.
  • Állítsuk be a Transaction tulajdonságot egy TIBTransaction komponens használatával.
  • Írjuk be a kívánt SQL utasítást a komponens megfelelő tulajdonságába (InsertSQL, DeleteSQL, ModifySQL, SelectSQL). A paramétereket állítsuk be a Params tulajdonság használatával.
  • Ha a komponens valamilyen SELECT utasítást használt, akkor a lekérdezés eredményét egy adatmegjelenítő komponens segítségével böngészhetjük.
  • Nyissuk meg a komponenst. Ha a lekérdezés egy eredményhalmazt szolgáltat, akkor az Active tulajdonságot vagy az Open metódust használjuk. Az olyan lekérdezéseket, amelyek csak egy műveletet hajtanak végre egy táblán, de nem adnak vissza eredményt, az ExecSQL metódussal futtathatjuk.
A DataSource tulajdonság felhasználása

Csak a paraméteres lekérdezések esetén van értelme. Ha a paraméter értéke egy adatforrás valamely mezőjéből származik (és nem a felhasználó gépeli be azt), akkor a paraméterérték(ek) megadására használhatjuk a TIBDataSet komponens DataSource tulajdonságát. Ezt arra az adatforrásra kell irányítanunk, amelyikből a paraméter értéke származik. A lekérdezés lefuttatásakor a rendszer kiértékeli, hogy be van-e állítva a DataSource jellemzője, és ha igen, akkor az ott beállított adatforrásban keres egy - a paraméter nevével megegyező nevű - mezőt. Ennek a mezőnek aktuális rekordbeli értéke kerül a lekérdezésbe paraméterértékként. Később, amikor az aktuális rekord megváltozik, tehát a megfelelő mező értéke is más lesz, a rendszer automatikusan frissíti a lekérdezést, újrafuttatja az új paraméterértékkel.


A komponens legfontosabb tulajdonságai:
  • Active: Megmutatja vagy beállíthatjuk segítségével, hogy a táblánk aktív-e vagy sem.
  • AutoCalcFields: A tulajdonság igaz értéke lehetővé teszi, hogy a tábla frissítésekor, megnyitásakor vagy egyéb definiált esetekben automatikusan lefusson az OnCalcFields esemény, amennyiben lekezeltük.
  • BufferChunks: Beállíthatjuk, hogy a buffer mérete mennyivel nőjön (rekordokban), ha betelik.
  • ChachedUpdates: A gyorsítótáras frissítés engedélyezését határozhatjuk meg. Amikor a tulajdonságot igazra állítjuk, a frissítések (módosítások, törlések, új rekord beszúrása) csak a program gyorsítótárában, a kliens gépen lesz eltárolva. Amikor végeztünk minden módosítással, az alkalmazásunk helyben tárolt módosítást elküld egyszerre, egy tranzakció keretében az adatbázishoz.
  • DataSource: Beállíthatjuk, hogy mely adatforrás (TDataSource) alapján épüljön fel egy paraméteres lekérdezés.
SELECT * FROM ORDERS O WHERE (O.CUSTNO = :CUSTNO)

Ez a formula egy olyan eredményhalmazt ad, ahol az ORDERS tábla eredményei a TDataSource komponens által meghatározott adatbázistól függenek a WHERE záradékban megadottak szerint.
  • DeleteSQL: Adatok törlésekor használt SQL utasítást adhatunk meg.
  • InsertSQL: Adatok beszúrásakor használt SQL utasítást adhatunk meg.
  • ModifySQL: Adatok módosításakor használt SQL utasítást adhatunk meg.
  • ParamCheck: Beállíthatjuk, hogy ha futási időben változnak a lekérdezés paraméterei, újra kell-e azokat generálni. Akkor hasznos számunkra ez a tulajdonság, ha DDL utasítást futtatunk. Tárolt eljárások futtatása esetén többnyire hamis értékűre szokták állítani.
  • Params: A lekérdezéshez szükséges paramétereket adhatjuk meg.
  • Prepared: Jelzi, ha a lekérdezés már elő van készítve.
  • RefreshSQL: Frissítéskor használt SQL utasítást adhatunk meg.
  • SelectSQL: Adatok kiválogatásakor, lekérdezésekor használt SQL utasítást adhatunk meg.
  • StatamentType: A lekérdezés típusával tér vissza. Lehetséges értékei: SQLUnknown, SQLSelect, SQLInsert, SQLDelete, SQLUpdate, SQLDDL, SQLGetSegment, SQLPutSegment, SQLExecProcedure, SQLStartTransaction, SQLCommit, SQLRollback, SQLSelectForUpdate, SQLSetGenerator.
  • UniDirectional: Beállíthatjuk, hogy a kétirányú kurzorok engedélyezettek legyenek-e a tábla számára.
  • UpdateObject: Itt egy kapcsolódást adhatunk meg egy TIBUpdateSQL komponens felé, amelyet akkor használ az alkalmazás, ha frissíteni kell az eredményeket. Ezzel a lehetőséggel a 11. részben foglalkozunk behatóbban.
Események:
Nagyon sok, például a Tquery vagy TTable komponensnél már megismert tulajdonsággal találkozhatunk. Itt csak az újabbakkal ismerkednénk meg.
  • AfterDatabaseDisconnect: Az esemény akkor aktiválódik, miután az adatbázissal megszakadt a kapcsolatunk.
  • BeforeDatabaseDisconnect: A kapcsolat megszakadása előtt váltódik ki ez az esemény.
  • DatabaseFree: Az esemény bekövetkezik, amint az adatbázis által használt memória felszabadul.
  • AfterTransactionEnd: Egy tranzakció befejezése után aktiválódó esemény.
  • BeforeTransactionEnd: A tranzakció befejezése előtt következik be ez az esemény.
  • TransactionFree: Az esemény akkor váltódik ki, miután a tranzakció által használt memória felszabadul.
Metódusok:
  • BatchInput: Futtathatunk egy paraméterezett SQL utasítást (általában INSERT) úgy, hogy az adatokat egy fájlból töltjük be az adatbázisba.
  • BatchOutput: Az aktuális lekérdezés eredményét menti egy megadott fájlba.
  • ExecSQL: Olyan SQL utasítások futtatására használhatjuk, amelyek nem adnak vissza eredményhalmazt.
  • Prepare: Arra használhatjuk ezt az eljárást, hogy a lekérdezés számára erőforrást foglaljunk le, és az optimalizálása megtörténhessen. Ezáltal ha többször is meghívjuk a lekérdezést, akkor az gyorsabban fog lefutni. A Delphi rendszer automatikusan optimalizálja a lekérdezést a futtatása előtt, ha mi ezt nem tettük meg, majd a futás után felszabadítja az erőforrásokat. Ezt annyiszor teszi meg, ahányszor az adott lekérdezés lefut.
  • Unprepare: Felszabadítja az utoljára meghívott Prepare metódus által lefoglalt erőforrásokat, mind a kliens, mind a szerver oldalán.
  • Open: A lekérdezés megnyitása, ha eredményhalmazzal tér vissza.
  • Close: A lekérdezés bezárása.
Természetesen több eseménnyel, tulajdonsággal és metódussal is rendelkezik a komponens, de ezek például egy egyszerű TTable komponensnél is megtalálhatóak és használhatóak.

Ha a komponensen a jobb egérgombbal kattintunk, és a megjelenő helyi menüből a Dataset Editor… pontot választjuk, akkor egy kis ablak nyílik meg, amelyben könnyedén el tudjuk végezni a tulajdonságok beállítását. Az ablak első oldalán lehetőségünk van az adott paraméterek segítségével SQL utasítást generálni, míg a második oldalon mi szerkeszthetjük a parancsokat.


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 426. 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 |