HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A ClientDataSet komponens


ClientDataSet 4. rész

Példaprogram letöltése

5396 bájt

A TClientDataSet osztályt referenciaszerűen bemutató cikksorozat negyedik részében folytatjuk az osztály metódusainak ismertetését. A mellékelt példában beumtatjuk, hogy hogyan tudjuk az adatokra vonatkozó megszorításokat (szabályokat) ki-be kapcsolni, illetve egy speciális keresési lehetőséget, ami különösen akkor hasznos, ha több keresést végzünk egymás után több olyan keresési kulccsal, amelyek közül csak egy-kettő változik a keresések során.

ConstraintsDisabled
Osztály: TCustomClientDataSet
function ConstraintsDisabled: Boolean;
A függvény visszatérési értéke megmondja, hogy az adatokra vonatkozó megkötések figyelembe lesznek-e véve a módosításkor. Ha a függvény visszatérési értéke igaz, akkor a megkötések nem lesznek figyelembe véve.
CreateBlobStream
Osztály: TCustomClientDataSet
function CreateBlobStream(
Field: TField;
Mode: TBlobStreamMode
): TStream;
Létrehoz egy TClientBlobStream objektumot, melynek segítségével írhatunk és olvashatunk adatokat a Field paraméterben megadott BLOB típusú mezőből.
Ha a FetchOnDemand property értéke igaz, akkor az aktuális rekord adatait beolvassa. Ha hamis, és a provider nem olvassa be automatikusan ezeket az adatokat, akkor a CreateBlobStream függvény előtt meg kell hívni a FetchBlobs eljárást.
Paraméterek
Field: TField
Ebben a paraméterben egy TBlobField típusú objektumot kell megadni.
Mode: TBlobStreamMode
A Mode paraméterben megadhatjuk, hogy milyen műveletet szeretnénk elvégezni a mezővel. Ennek értékei a következők lehetnek:
  • bmRead: adatokat olvasunk a mezőből;
  • bmWrite: adatokat írunk a mezőbe;
  • bmReadWrite: módosítjuk a mezőben lévő adatot;
Visszatérési érték
Visszatérési értéke egy TStream objektum,. amiből kiolvashatjuk a mező tartalmát.
CreateDataSet;
Osztály: TCustomClientDataSet
procedure CreateDataSet;
Létrehoz egy új, üres táblát. A FieldDefs property-ben megadott adatokat figyelembe veszi az új tábla létrehozásakor, illetve ha ez a property üres, akkor a Fields property-t használja fel. Ha mindkét property üres, akkor hibaüzenetet kapunk, tehát legalább az egyiket kötelezően meg kell adni az eljárás meghívása előtt.
Ha az IndexDefs property is tartalmaz adatokat, akkor létrehozza az ebben tárolt indexeket is a táblához, melyeket el is tárol a táblával együtt, amikor megtörténik a mentés.
Az eljárás nemcsak futási időben használható. Ha megadtuk a szükséges adatokat (mező definíciók illetve indexek), akkor kattintsunk a jobb egérgombbal a komponensen, majd válasszuk a Create Dataset menüpontot.
DataRequest
Osztály: TCustomClientDataSet
function DataRequest(
Data: OleVariant
): OleVariant;
A függvény generál egy OnDataRequest eseményt. A Data paraméter jelentése és a függvény visszatérési értéke nincs előre meghatározva.
Paraméterek
Data: OleVariant
A Data paraméter az OnDataRequest esemény Input paramétere lesz.
Visszatérési érték
A függvény visszatérési értéke lehet az OnDataRequest esemény visszatérési értéke.
DeleteIndex
Osztály: TCustomClientDataSet
procedure DeleteIndex(
const Name: string
);
Törli a paraméterként megadott nevű indexet. A DEFAULT_ORDER és CHANGEINDEX indexek nem törölhetők.
Paraméterek
const Name: string
Ebben aparaméterben adhatjuk meg a törlendő index nevét.
DisableConstraints;
Osztály: TCustomClientDataSet
procedure DisableConstraints;
Kikapcsolja az adatok értékére vonatkozó megkötéseket. Ez néhány esetben a teljesítmény növekedésével jár, mivel az adatok nem lesznek ellenőrizve.
Az eljárás egy számlálót növel. Amíg a számláló értéke nagyobb, mint 0, addig a megkötések ki lesznek kapcsolva. Éppen ezért párban ajánlatos használni az EnableConstraints eljárással, ami a számláló értékét csökkenti.
EditKey;
Osztály: TCustomClientDataSet
procedure EditKey;
A kereséshez használt kulcs szerkesztését teszi lehetővé. Az IndexFields property-ben megadott mezőket felhasználva megadhatunk egy új keresési kulcsot. Ez akkor használható ki igazán, amikor több rekordot is keresünk, de a keresési kulcsnak csak egy része különböző az egyes rekordoknál, mivel az EditKey eljárás nem törli az előzőleg megadott kulcsot.
with ClientDataSet3 do begin
  EditKey;
  FieldByName('UPDATER_ID').AsString := ComboBox1.Text;
  GotoKey;
end;
EditRangeEnd;
Osztály: TCustomClientDataSet
procedure EditRangeEnd;
A tartomány végének megadását teszi lehetővé. Meghívása után a FieldByName függvénnyel meghatározhatjuk azt a rekordot, ami a tartomány vége lesz. Ezután az ApplyRange eljárás meghívva aktivizálhatjuk az új tartományt.
EditRangeStart;
Osztály: TCustomClientDataSet
procedure EditRangeStart;
A tartomány elejének megadását teszi lehetővé. A FieldByName függvénnyel meghatározhatjuk a tartomány elején lévő rekordot. Ezután az EditRangeEnd függvénnyel hasonlóképpen meghatározhatjuk a tartomány végén lévő rekordot, majd az ApplyRange eljárással aktivizálhatjuk a tartományt. Ennek hatására csak a tartományban lévő rekordok lesznek elérhetők.
with ClientDataSet2 do begin
  EditRangeStart;
  FieldByName('EMP_NO').AsInteger := SpinEdit1.Value;
  EditRangeEnd;
  FieldByName('EMP_NO').AsInteger := SpinEdit2.Value;
  ApplyRange;
end;
EmptyDataSet;
Osztály: TCustomClientDataSet
procedure EmptyDataSet;
Az eljárás az összes rekordot törli a táblából.
EnableConstraints;
Osztály: TCustomClientDataSet
procedure EnableConstraints;
Engedélyezi a megkötések ellenőrzését. A DisableConstraints által növelt számláló értékét csökkenti. Ha a számláló értéke 0, akkor a megkötések ellenőrzése megtörténik, ellenkező esetben nem. Ebből következik, hogy az EnableConstraints eljárást legalább annyiszor meg kell hívni, mint előtte a DisableConstraints eljárást.
Execute;
Osztály: TCustomClientDataSet
procedure Execute;
Az eljárás olyan SQL parancsok és tárolt eljárások futtatását teszi lehetővé, melyeknek nincs visszatérési értékük (pl. egy adatkészlet). A futtatás után az esetleges output paraméterek értékei a Params property-ből olvashatók ki (pl. a ParamByName függvénnyel).
Az eljárás futtatásakor először létrejön egy BeforeExecution esemény. Ezután fut le a lekérdezés vagy tárolt eljárás, és miután a Params property frissítése is megtörtént, generál egy AfterExecute eseményt.
Az eljárás nem használható olyan lekérdezések és tárolt eljárások futtatására, melyek egy kurzort adnak vissza.
FetchBlobs;
Osztály: TCustomClientDataSet
procedure FetchBlobs;
A BLOB típusú adatok lekérdezését hajtja végre ez az eljárás, amennyiben az nem történik meg automatikusan (pl. amikor az Options property-ben a poFetchBlobsOnDemand opció meg van adva).
Az eljárás meghívására nincs szükség, ha a provider automatikusan letölti ezeket az adatokat is, illetve a poFetchBlobsOnDemand opció nincs bekapcsolva.
FetchDetails;
Osztály: TCustomClientDataSet
procedure FetchDetails;
Frissíti a detail adatkészletet, ha ez egyébként nem történik meg automatikusan. Ez utóbbi eset akkor következhet be, ha az Options property-ben a poFetchDetailsOnDemand opció meg van adva.
Az eljárás használatára nincs szükség, ha a detail adatkészlet automatikusan megtörténik, vagy a FetchOnDemand property értéke igaz.
FetchParams;
Osztály: TCustomClientDataSet
function FetchParams;
Frissíti a Params property-ben tárolt paraméterek értékeit. Természetesen csak akkor van hatása, ha az adatkészlet rendelkezik paraméterekkel.
Az eljárást szerkesztési időben is futtathatjuk, ha a komponens menüjéből kiválasztjuk a Fetch Params menüpontot.
FindKey
Osztály: TCustomClientDataSet
function FindKey(
const KeyValues: array of const
): Boolean;
Az aktuális index szerinti keresést tesz lehetővé.
Ha a keresés eredmény sikeres, akkor a kurzort a megtalált rekordra állítja, és a függvény visszatérési értéke igaz lesz. Ellenkező esetben a kurzor nem mozdul, és a visszatérési érték hamis.
if ClientDataSet1.FindKey([20, ’Alma’]) then ...
Paraméterek
const KeyValues: array of const
Ebben a halmaz típusú paraméterben megadható az indexben szereplő mezőkhöz egy-egy érték, ami lehet sztring, szám, NULL vagy nil. Ha a megadott értékek száma kevesebb, mint az index-ben szereplő mezőké, akkor a hiányzó mezőkhöz tartozó értékek NULL értékként lesznek értelmezve.
Visszatérési érték
A függvény visszatérési érétke igaz, ha a keresett rekordot megtalálta, és hamis, ha nem.
FindNearest
Osztály: TCustomClientDataSet
procedure FindNearest(
const KeyValues: array of const
);
Az eljárást keresésre használhatjuk, hasonlóan a FindKey függvényhez. A különbség csak annyi, hogy itt a megadott értékeknek nem kell teljesen megegyezniük a rekordokban tárolt adatokkal. Az eljárás rápozícionál arra a rekordra, amelyre leginkább illeszkedik a megadott érték, vagy az első rekordra, amely a megadott értéknél nagyobb. Ha egyik sem lehetséges, akkor az utolsó rekordra állítja a kurzort. Az eljárás csak sztring típusú adatok esetén használható.
Paraméterek
const KeyValues: array of const
Ebben a halmaz típusú paraméterben megadható az indexben szereplő mezőkhöz egy-egy érték (sztring).

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