HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A DataSetProvider komponens


DataSetProvider 2. rész

Példaprogram letöltése

5302 bájt

A DataSetProvider komponensről szóló cikksorozat 2. részében folytatjuk a komponens metódusainak ismertetését. A mellékelt példaprogramban most egy InterBase adatbázishoz csatlakozunk, és egy lekérdezést jelenítünk meg. A lekérdezést egy DataSetProvider-en keresztül egy kliens adatkészlethez kapcsoljuk, aminek segítségével a lekérdezés eredményét elmenthetjük XML adatcsomag formátumban.

A példaprogram futtatása előtt az SQLConnection1 komponens Params property-jében a Database mezőben meg kell adni az adatbázis helyes útvonalát!
DoBeforeExecute
Osztály: TDataSetProvider
procedure DoBeforeExecute(
const CommandText: WideString,
var Params,
OwnerData: OleVariant
);
Az eljárás generál egy BeforeExecute eseményt mielőtt futtatná a CommandText-et, lekérdezést vagy tárolt eljárást.
Paraméterek
const CommandText: WideString
Ez a paraméter opcionális, egy SQL lekérdezést, vagy egy tárolt eljárás nevét tartalmazza. Ez a lekérdezés vagy tárolt eljárás a provider-hez kapcsolt lekérdezés illetve tárolt eljárás helyett fut le. Ha az Options property tartalmazza a poAllowCommandText értéket, akkor az adatkészlet futtatja a lekérdezést az adatkészlethez tartozó lekérdezés vagy tárolt eljárás helyett.
var Params
Ha a CommandText paraméterben megadott lekérdezés vagy tárolt eljárás paraméterezett, akkor annak paramétereit ebben a paraméterben lehet megadni.
OwnerData: OleVariant
Ebben a paraméterben tetszőleges adatokat megadhatunk, amit aztán az AfterExecute eseménykezelő eljárásban felhasználhatunk.
DoBeforeGetRecords
Osztály: TDataSetProvider
procedure DoBeforeGetRecords(
Count: Integer;
Options: Integer;
const CommandText: WideString;
var Params,
OwnerData: OleVariant
);
A GetRecords függvény meghívja ezt az eljárást, ami generál egy BeforeGetRecors eseményt. Az esemény azelőtt jön létre, mielőtt az adatok fogadása megtörténne.
Paraméterek
Count: Integer
A lekérdezett rekordok száma. A TDataSetProvider nem használja ezt a paramétert.
Options: Integer
Ez a paraméter tartalmazza a következő információkat:
  • az adatcsomag tartalmazza-e a struktúra leírását (meta-információk);
  • az adatcsomag az első rekordtól kezdve tartalmazza az adatokat;
  • az adatcsomag XML formátumban legyen-e továbbítva.
A TDataSetProvider nem használja ezt a paramétert.
const CommandText: WideString
Ez a paraméter opcionális, egy SQL lekérdezést, vagy egy tárolt eljárás nevét tartalmazza. Ez a lekérdezés vagy tárolt eljárás a provider-hez kapcsolt lekérdezés illetve tárolt eljárás helyett fut le. Ha az Options property tartalmazza a poAllowCommandText értéket, akkor az adatkészlet futtatja a lekérdezést az adatkészlethez tartozó lekérdezés vagy tárolt eljárás helyett.
var Params
Ha a CommandText paraméterben megadott lekérdezés vagy tárolt eljárás paraméterezett, akkor annak paramétereit ebben a paraméterben lehet megadni.
OwnerData: OleVariant
Ebben a paraméterben tetszőleges adatokat megadhatunk, amit aztán az AfterGetRecords eseménykezelő eljárásban felhasználhatunk.
DoGetProviderAttributes
Osztály: TDataSetProvider
procedure DoGetProviderAttributes(
DataSet: TDataSet;
List: TList
);
Ez egy belsőleg használt eljárás, feltölt egy listát a provider adatairól. Ez tartalmaz információkat az adatkészletről (az IProviderSuooport interfész PSGetAttributes metódusa által), valamint saját információkat amelyeket az OnGetDataSetProperties eseménynél adhatunk meg.
Paraméterek
DataSet: TDataSet
Ez a paraméter tartalmazza annak az adatkészletnek az objektumát, ami tárolja az információkat.
List: TList
Ebbe az objektumba másolja át az információkat név=érték formátumban.
DoGetTableName
Osztály: TDataSetProvider
procedure DoGetTableName(
DataSet: TDataSet;
var TableName: string
);
A resolver meghívja ezt az eljárást amikor előkészíti az adatok aktualizálását. Ha felülírjuk ezt a metódust, akkor megadhatjuk hogy a frissítés melyik adatkészletben legyen végrehajtva.
Paraméterek
DataSet: TDataSet
Az adatkészlet objektuma, amelyikben a frissítést végre kell hajtani.
var TableName: string
Az SQL utasításban szereplő tábla nevét adhatjuk meg ebben a paraméterben.
FetchDetails
Osztály: TDataSetProvider
procedure FetchDetails(
Source,
Delta: TDataSet
);
Egy belsőleg használt eljárás ami feltölt egy adatkészletet a provider adatkészletéhez tartozó detail adatkészlet rekordjaival, amikor a RowRequest eljárás meghívásra kerül.
Paraméterek
Source
Ez az adatkészlet tartalmazza az összes mező aktuális adatait.
Delta: TDataSet
Ez egy delta adatkészlet, amit frissíteni kell azért, hogy a beágyazott detail mezők megegyezzenek a Source adatkészlet adataival.
FetchDetailsFromServer
Osztály: TDataSetProvider
procedure FetchDetailsFromServer(
Source,
Current,
Delta: TDataSet;
ATree: TUpdateTree
);
Belsőleg használt eljárás, ami a RowRequest metódus meghívásakor lekérdezi az összes beágyazott adatkészletet, ha az adatkészlet unidirectional (egyirányú).
Paraméterek
Source
A forrás adatkészlet objektuma. Mivel unidirectional adatkészlet, ezért nem szükségszerű, hogy a megfelelő rekord az aktuális rekord legyen az adatkészletben.
Current
Ez egy szintén unidirectional adatkészlet, ami a Source adatkészlet egy rekordját tartalmazza.
Delta: TDataSet
Ebben a delta adatkészletben kapjuk meg azokat a rekordokat, amelyek megfelelnek a Current adatkészletben lévő rekorddal.
ATree: TUpdateTree
TUpdateTree objektum ami a delta adatkészlet vezérlését oldja meg.
GetDataSetFromDelta
Osztály: TDataSetProvider
function GetDataSetFromDelta(
ATree: TUpdateTree;
Source,
Delta: TDataSet;
Mode: TUpdateMode
): TDataSet;
Belsőleg használt eljárás egy adott rekord adatainak beolvasására, amikor a forrás adatkészlet unidirectional.
Paraméterek
ATree: TUpdateTree
Ez a TUpdateTree objektum oldja meg az adatok tárolását és lekérdezését.
Source: TDataSet
A forrás adatkészlet objektuma. Mivel unidirectional adatkészlet, ezért nem biztos, hogy a megfelelő rekord az aktuális rekord az adatkészletben.
Delta: TDataSet
Ebben az adatkészletben kapjuk meg a rekordot.
Mode: TUpdateMode
A rekordra pozícionálás módját határozza meg ez a paraméter.
Visszatérési érték
A függvény egy olyan unidirectional adatkészletet ad vissza, ami egyetlen rekordot tartalmaz a Source adatkészletből. A rekord a Delta és Mode paraméterekben megadott kritériumoknak felel meg.
LocateRecord
Osztály: TDataSetProvider
procedure LocateRecord(
Source,
Delta: TDataSet;
);
Rápozícionál egy delta adatkészletben megadott rekordra. A RowRequest eljárás használja a megfelelő rekordra pozícionáláskor, amikor egy rekord adatait beolvassa.
Az eljárás használja az UpdateMode property-ben beállított kritériumokat.
Paraméterek
Source
Ez az adatkészlet tartalmazza az aktuális rekord értékeket.
Delta: TDataSet
Ez a delta adatkészlet tartalmazza a keresett információkat, azok pedig a keresett rekordot.
UpdateRecord
Osztály: TDataSetProvider
procedure UpdateRecord(
Source,
Delta: TDataSet;
BlobsOnly: Boolean
);
Ez az eljárás beolvassa egy adott rekord adatait egy delta adatcsomagba.
Paraméterek
Source
Az ebben a paraméterben megadott adatkészlet tartalmazza a rekordot.
Delta: TDataSet
Ebben az adatkészletben kapjuk meg a rekord adatait.
BlobsOnly: Boolean
Ha ennek a paraméternek az értéke igaz, akkor csak a BLOB mezők kerülnek beolvasásra.

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