HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A ClientDataSet komponens


ClientDataSet 3. rész

Példaprogram letöltése

61324 bájt

A TClientDataSet osztályról szóló cikksorozat harmadik részében befejezzük a property-k ismertetését, és rátérünk a metódusok ismertetésére. A mellékelt példában azt mutatjuk be, hogy hogyan tudunk egyszerűen ugyanazon adatkészletet két ClientDataSet komponenssel kezelni és szinkronizálni. Az ebben a részben ismertetett metódusok legtöbbje az adatkészlet bizonyos információinak, adatainak lekérdezésére szolgálnak.

SavePoint
Osztály: TCustomClientDataSet
property SavePoint: Integer;
Az adatbázison végzett módosításokat naplózza a komponens. Ebből a property-ből kiolvasható ennek a naplónak a jelenlegi állapota. Ennek segítségével bármikor visszatérhetünk egy korábbi állapotra úgy, hogy eltároljuk a property értékét egy egész típusú változóban, majd ha szükséges, akkor visszaadjuk az értéket a property-nek. Ebben az esetben azok a módosítások, melyek a property értékének eltárolása után történtek, elvesznek.
Ha már egyszer visszatértünk egy korábbi állapotba, akkor többször már nem lehet. Ez abban az esetben fordulhat elő, amikor már visszaállítottuk a property értékét egy korábbi értékre, vagy több lépést visszamentünk a RevertRecord metódussal, esetleg töröltük a naplót a CancelUpdates eljárással.
Ha egy olyan korábbi állapotot szeretnénk visszaállítani, ami már nem lehetséges, akkor kivételt okozunk.
StatusFilter
Osztály: TCustomClientDataSet
property StatusFilter: TUpdateStatusSet;
A komponens csak az ebben a property-ben megadott állapotú rekordokat teszi elérhetővé. A property a BeforeUpdateRecord esemény felhasználásával együtt hasznos. Egyszerre több érték is beállítható (TUpdateStatus), ezek a következők:
  • usUnmodified: ennél a property-nél ennek az értéknek nincs hatása;
  • usModified: módosított rekordok;
  • usInserted: új rekordok;
  • usDeleted: törölt rekordok.
StoreDefs
Osztály: TCustomClientDataSet
property StoreDefs: Boolean;
A property értéke azt mondja meg, hogy a mező és index adatok tárolásra kerülnek-e az adatkészletben. Ha a property értéke igaz, akkor ezek az adatok is tárolásra kerülnek. Ha a StoreDefs property értékét igazra állítjuk, akkor meghívja a CreateDataSet eljárást, ami létrehozza az adatkészlet struktúráját.
XMLData
Osztály: TCustomClientDataSet
property XMLData: OleVariant;
Ebből a sztring típusú property-ből XML formátumban kiolvashatjuk az adatkészletet.
AddIndex
Osztály: TCustomClientDataSet
procedure AddIndex(
const Name,
Fields: string;
Options: TIndexOptions;
const DescFields: string = '';
const CaseInsFields: string = '';
const GroupingLevel: Integer = 0
);
Ezzel az eljárással egy új indexet hozhatunk létre. Az AddIndex eljárással létrehozott index-eket nem lehet elmenteni a SaveToFile eljárással, valamint az adatkészlet bezárásakor is elvesznek. Lezárt adatkészlet esetén nem használható.
Paraméterek
const Name
Ebben a paraméterben kell megadni az új index nevét, aminek egyedinek kell lennie.
Fields: string
Ebben a paraméterben kell megadni az indexelt mezőket pontosvesszővel elválasztva.
Options: TIndexOptions
Az Options halmaz típusú paraméterben két TIndexOptions értéket adhatunk meg:
  • ixDescendig: a rendezés csökkenő sorrendben történik;
  • ixCaseInsensitive: a kis- és nagybetűk között nincs különbség a rendezésnél.
A két érték egyszerre is használható. A TIndexOptions típus több értéket is definiál, de ha más értéket is használunk az előbbi kettőn kívül, akkor hibaüzenetet kapunk.
const DescFields: string = ''
A DescFields paraméter azoknak a mezőknek a neveit tartalmazza pontosvesszővel elválasztva, melyeket csökkenő sorrendben kell rendezni. Ezt a paramétert az ixDescending helyett használjuk akkor, ha az index egyaránt tartalmaz olyan mezőket, melyeket növekvő, és olyanokat, melyeket csökkenő sorrendben kell rendezni. Nem kötelező megadni.
const CaseInsFields: string = ''
A CaseInsFields az ixCaseInsensitive helyett alkalmazható. A mezőket pontosvesszővel elválasztva kell felsorolni. Azokat a mezőket kell megadni, amelyekben a kis- és nagybetűk közötti különbségek nem számítanak. Nem kötelező megadni.
const GroupingLevel: Integer = 0
A GroupingLevel az alapértelmezett csoportosítási szint, amit az index támogat. A paraméter értéke 0-tól az indexben használt mezők számáig terjedhet (lásd GroupingLevel property). Nem kötelező megadni, az alapértelmezett érték 0.
AppendData
Osztály: TCustomClientDataSet
procedure AppendData(
const Data: OleVariant;
HitEOF: Boolean
);
A provider által szolgáltatott rekordokat átadja az adatkészletnek. A legtöbb alkalmazás a GetNextPacket függvényt használja helyette.
Paraméterek
const Data: OleVariant
Ebben a paraméterben vannak tárolva a rekordok.
HitEOF: Boolean
A HitEOF paraméter értéke igaz, ha a rekordok beolvasása közben az adatkészlet végére ért.
ApplyRange;
Osztály: TCustomClientDataSet
procedure ApplyRange;
Aktualizálja a SetRangeStart és SetRangeEnd, vagy az EditRangeStart és EditRangeEnd eljárásokkal meghatározott tartományt. Ezután csak a tartományban szereplő rekordok lesznek elérhetők és szerkeszthetők. Az eljárás meghívása után a tartomány első rekordján áll a kurzor.
ApplyUpdates
Osztály: TCustomClientDataSet
function ApplyUpdates(
MaxErrors: Integer
); Integer;
Véglegesíti a módosításokat az adatbázisban.
A véglegesítés a következő lépésekben történik:
  • generál egy BeforeApplyUpdates eseményt;
  • a provider véglegesíti a módosításokat, melyek a Delta property-n keresztül érhetők el, valamint fogadja azokat a rekordokat, melyeknél a tárolás közben hiba lépett fel;
  • generál egy AfterApplyUpdates eseményt;
  • meghívja a Reconcile eljárást.
Paraméterek
MaxErrors: Integer
A MaxErrors property-ben megadhatjuk a véglegesítés közben eltűrt hibák maximális számát. Ha ennél több hiba előfordul, akkor a véglegesítés megszakad. Ha nincs korlátozva a hibák száma, akkor adjunk meg –1-et.
Visszatérési érték
A függvény visszatérési értéke a véglegesítés közben előfordult hibák száma.
BookmarkValid
Osztály: TCustomClientDataSet
function BookmarkValid(
Bookmark: TBookmark
): Boolean;
A függvény a paraméterként megadott tábla könyvjelzőről (TBookmark) eldönti, hogy az érvényes-e. Ha a függvény visszatérési értéke igaz, akkor a könyvjelző érvényes, ellenkező esetben nem.
Paraméterek
Bookmark: TBookmark
Ebben a paraméterben adhatjuk meg a könyvjelző objektumát.
Visszatérési érték
A visszatérési érték igaz, ha a könyvjelző érvényes, és hamis, ha nem.
Cancel
Osztály: TCustomClientDataSet
procedure Cancel; override;
Az aktuális rekordon elvégzett, de még nem tárolt (Post) módosításokat törli, és az adatkészlet állapotát (State) dsBrowse-ra állítja. Az eljárást ne tévesszük össze a RevertRecord eljárással, ami az összes fizikailag nem tárolt módosítást törli.
CancelRange;
Osztály: TCustomClientDataSet
procedure CancelRange;
Az eljárás meghívásával megszüntetjük a tartomány kijelölést, így az adatkészlet összes rekordja újra elérhető és szerkeszthető lesz.
CancelUpdates;
Osztály: TCustomClientDataSet
procedure CancelUpdates;
Az eljárás törli az összes fizikailag még nem tárolt módosítást (rekord felvétel, módosítás, törlés). Ezek a módosítások a Delta property-n keresztül érhetők el, az eljárás ennek tartalmát törli.
CloneCursor
Osztály: TCustomClientDataSet
procedure CloneCursor(
Source :TCustomClientDataSet;
Reset: Boolean;
KeepSettings: Boolean = False
); virtual;
Egy másik TCustomClientDataSet osztályból származó komponenst ad meg forrásként.
A Reset és a KeepSettings logikai típusú paraméterek határozzák meg, hogy a következő property-k értékei hogyan változnak:
  • Filter, Filtered, FilterOptions, és OnFilterRecord
  • IndexName
  • MasterSource és MasterFields
  • ReadOnly
  • RemoteServer és ProviderName
Ha mindkét paraméter értéke hamis, akkor a fenti property-k értékei a forrás komponens ugyanezen property-jeinek értékeit veszik fel.
Ha a Reset paraméter értéke igaz, akkor a fent felsorolt property-k értékei törlődnek.
Ha a Reset paraméter értéke hamis, de a KeepSettings paraméteré igaz, akkor a property-k megtartják az eredeti értéküket, de ezeknek kompatibilisnek kell lenniük a forrás adatkészlettel (index-ek).
Az eljárás meghívása után a két adatkészlet meg fog egyezni. Az egyikben végrehajtott módosítások a másikban is végrehajtódnak. Ez olyan szinten igaz, hogy ha például az egyik adatkészletet ReadOnly-ra állítjuk, akkor a másik is az lesz.
Paraméterek
Source :TCustomClientDataSet
Ebben a paraméterben kell megadni a másik komponenst (osztályt).
Reset: Boolean
A KeepSettings paraméter értékével együtt értelmezhető (lásd fent).
KeepSettings: Boolean = False
A Reset paraméter értékével együtt értelmezhető (lásd fent).
CompareBookmarks
Osztály: TCustomClientDataSet
function CompareBookmarks(
Bookmark1,
Bookmark2: TBookmark
): Integer;
Összehasonlít két tábla könyvjelzőt. A két könyvjelzőt a Bookmark1 és Bookmark2 paraméterben kell megadni.
Paraméterek
Bookmark1
Az első összehasonlítandó könyvjelző objektuma.
Bookmark2: TBookmark
A második összehasonlítandó könyvjelző objektuma.
Visszatérési érték
A függvény –1-et ad vissza, ha a Bookmark1 kisebb, mint a Bookmark2, 1-et, ha nagyobb, és 0-t, ha megegyeznek. Egy könyvjelző akkor kisebb egy másiktól, ha a táblában egy kisebb sorszámú rekordra mutat.

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


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