HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TADODataSet komponens


ADO paletta 5. rész

Példaprogram letöltése

18815 bájt

A cikkben az ADO komponenspaletta TADODataSet komponensét mutatjuk be. A komponens egy általános adatelérési komponens ADO adathalmazok eléréséhez. Az adatokat közvetlenül táblából vagy SQL utasításon keresztül egy vagy több táblából is nyerhetjük. Az ADO komponensek redundáns világában az összes többi adatelérési komponenst helyettesítheti.
Példaprogram

Szokás szerint a NorthWind SQL példaadatbázist használjuk a teszteléshez. A ConnectionString alapértelmezett értéke:
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;
Initial Catalog=Northwind;Data Source=NALA
SQL Server esetén a Data Source paraméter értékét le kell cserélni a gazdaszámítógép nevére. Ha nincs SQL Server a gépen, meg lehet próbálkozni a NorthWind Access változatával. A ConnectionString ekkor valami ilyesmi lesz:
Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;
Data Source=C:\Program Files\Microsoft Data Access SDK\Samples\ADO\NWIND.mdb;
Ha nincs Northwind adatbázis, bármi mással is próbálkozhatunk, hiszen a programban van Connection String szerkesztési lehetőség.

A programban az adatbázis Employees tábláját szólítjuk meg, és kötegelt feldolgozási módban nyitjuk meg (batch update mode). Ez azt jelenti, hogy az adatok módosítása egy cache területen gyűlik mindaddig, amíg mi akarjuk. Hogy ezt megtehessük, szükséges néhány beállítás:
  • A CursorType property értéke ctKeySet vagy ctStatic kell legyen.
  • A LockType property ltBatchOptimistic kell legyen.
  • A SQL parancs csak SELECT utasítás lehet.

  with ADODataSet1 do
  begin
    Connection := ADOConnection;
    CursorLocation := clUseServer;
    CursorType := ctKeyset;
    LockType := ltBatchOptimistic;
    CommandType := cmdText;
    CommandText := 'SELECT * FROM Employees';
    Open;
  end;
A módosított adatok érvényesítéséhez az UpdateBatch metódust használjuk.
  ADODataSet1.UpdateBatch;
Hatására minden cache-ben tárolt változtatás beíródik a recordset alapját képező táblába. A törlésre kijelölt rekordok törlődnek, a beszúrt rekordok insertálódnak. Ha a metódust paraméterrel hívjuk, a vonatkozó rekordok körét szűkíthetjük.

A cache-ben várakozó módosításokat a CancelBatch metódussal érvényteleníthetjük.
  ADODataSet1.CancelUpdates;
Mint az UpdateBatch, a CancelBatch is paraméterezhető, ha a visszavonást nem a cache egész tartalmára akarjuk vonatkoztatni.

A műveletek közben az ADOConnection és ADODataSet komponensek által kiváltott eseményeket monitorozhatjuk a jobb oldali ablakban.

TADODataSet komponens

A TADODataSet komponensen keresztül érjük el az adatokat, BDE párja nincs, kicsit hasonlít a Table és Query komponensekhez. (Mindannyian a TDataSet illetve a TCustomADODataSet leszármazottai.) Találunk benne egy ConnectionString nevű property-t, tehát lehetőségünk van egyedi kapcsolat felépítésére is. Ha megelégszünk a megosztott kapcsolattal, akkor a Connection property-t kell a TADOConnection komponensre állítani.
ADODataSet1.Connection := ADOConnection1;
A komponens CommandText property-jében adhatjuk meg, hogy milyen adatokat szeretnénk lekérni. Megadhatunk táblanevet, vagy egy SELECT tSQL utasítást, amiben több táblára is hivatkozhatunk. Hogy melyiket írjuk be a CommandText-be, azt a CommandType property-ben tudatjuk a komponenssel; cmdTable jelenti a táblanevet, cmdText a tSQL SELECT-et. Olyan utasítást nem írhatunk ide, ami nem ad vissza eredményhalmazt, mint pl. az INSERT vagy DELETE. Erre a TADOCommand komponenst kell használnunk.

A lekért tábla kezelése ugyanaz, mint amit a TDataSet-nél megszoktunk. Vagyis működik az Edit, Insert, Post, az egyes mezőket a Field nevű TField típusú property-n keresztül érjük el. A táblában a First, Next, Prior, Last metódusokkal közlekedhetünk. A vizuális komponensekkel TDataSource-on keresztül tartjuk a kapcsolatot.

Említettük, hogy a TADODataSet komponens az ADO RecordSet nevű COM objektumára épül. A komponens az objektumhoz közvetlen hozzáférést biztosít a RecordSet property-n keresztül. Akkor érdemes ezt kihasználni, ha teljesen tisztában vagyunk az ADO és főleg a recordset objektum működésével.


Lássuk a property-ket, metódusokat, eseményeket!

Property:

RDSConnection: A TADOTable egyetlen új property-je. Ha távoli (RDS) adatforráshoz kapcsolódunk, a Connection property helyett az RDSConnection property-t kell használnunk, és TADOConnection helyett TRDSConnection objektumra kell mutatnunk. A TRDSConnection komponensről és Remote Data Service-ről a sorozat utolsó cikkében olvashatunk.

Metódusok:

CreateDataSet: ADO recordset objektumot hoz létre. Az ADO adathalmazok automatikusan hívják, nem kell programoznunk.

GetIndexNames: A tábla elérhető indexeit gyűjti sztringlistába.

Események:

A TCustomADODataSet komponenshez képest nem vezet be új eseményt.


Cikksorozat



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