HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

TADOTable komponens


ADO paletta 6. rész

Példaprogram letöltése

20471 bájt

A cikkben az ADO komponenspaletta TADOTable komponensét mutatjuk be. A komponens a BDE TTable komponenséhez hasonlóan táblák elérésére szolgáló komponens.
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 példaprogramban először csatlakozzunk az adatbázisra a Connect gomb megnyomásával. Csatlakozás után nyomjuk meg a Táblák gombot, hogy az adatbázis tábláinak neve megjelenjen az alatta lévő TListBox-ban. A táblák nevére kattintva a táblák szerkezete és a táblák tartalma egy-egy TDBGrid-ben mutatkozik meg. A táblák mezőire vonatkozó információkat a Connection objektum OpenSchema metódusával érjük el.

procedure OpenSchema(const Schema: TSchemaInfo; const Restrictions: OleVariant; const SchemaID: OleVariant; DataSet: TADODataSet);

A Schema paraméterrel megadjuk, hogy milyen típusú információkra van szükségünk. (Kb. 40 féle információt kérhetünk le.) A SchemaID paramétert akkor kell megadnunk, ha provider-specifikus információt akarunk lekérdezni (Schema = siProviderSpecific). A DataSet paraméterben kapjuk vissza a kívánt információt. A példaprogramban éppen a mezők jellemzőit, mert a Schema paramétert siColumns-ra állítottuk. A Restriction paraméterben adjuk meg a tábla nevét, amiről a mező-információt kérjük.

Az adathalmazok tartalmát lemezre menthetjük, erre is mutatunk példát. A mentés a SaveToFile metódus hívásával történik, paraméterként a fájl típusát kell megadnunk. Az ADO jelenleg két formátumot ismer, az ADTG-t (Advanced Table Datagram) és az XML-t (pfADTG vagy pfXML).
  if (FileExists('c:\SavedData.adtg')) then
         DeleteFile('c:\SavedData.adtg');
  ADOTable1.SaveToFile('c:\SavedData.adtg', pfADTG);
A programban először ellenőrizzük, hogy a fájl létezik-e már, és ha igen, töröljük. Ha nem törölnénk, mentéskor az EOleException kivételt kapnánk.

A tábla beolvasását a LoadFromFile metódus végzi
  if (FileExists('c:\SavedData.adtg')) then
    ADOTable1.LoadFromFile('c:\SavedData.adtg');
A fájl meglétét ellenőrizni kell, különben itt is EOleException kivételre futunk.

TADOTable komponens

A TADOTable a TTable BDE komponens ADO megfelelője. Akkor érdemes használni, amikor egy egyszerű táblát kérünk le az adatbázisszervertől. A tábla nevét a TableName property-ben kell megadnunk.

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

Property-k:

IndexFieldNames: Az index-ként használt oszlop nevét tartalmazza. Egyszerre több név is szerepelhet, ekkor azokat pontosvesszővel kell elválasztani. Az itt szereplő érték végül az ADO Recordset objektum Sort metódusának a paramétere lesz.

MasterFields: A master-detail reláció alapjául szolgáló mező vagy mezők nevét tartalmazza. A kapcsolat felparaméterezéséhez, akár a BDE táblák esetén, itt is segítségül hívhatjuk a kapcsolatszerkesztő ablakot.

MasterSource: A master-detail relációhoz használt data source komponenst tartalmazza. A kapcsolatban a Master táblát azonosítja. Beállítása futási időben is nagyon egyszerű:
MasterTable.TableName := 'Orders';
DetailTable.TableName := 'Order Details';
DetailTable.MasterFields := 'OrderId';
DetailTable.MasterSource := mtSource;
MasterTable.Open;
DetailTable.Open;
ReadOnly: Boolena property, ha értéke True, a tábla csak olvasható.

TableDirect: Boolean property, a táblára való hivatkozás módját adja meg. Ha értéke TRUE, akkor a táblára az ADO a nevével fog hivatkozni, ha FALSE, akkor SQL utasítással. Óvatosan kell bánni a használatával, mert nem minden provider támogatja a tábla névvel történő megszólítását.

TableName: A tábla nevét tartalmazza.

Metódusok:

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

Események:

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

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