HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Adattábla karbantartó komponens


Példaprogram letöltése

6880 bájt

Készítünk egy komponenst, amely segítségével egy megadott SQL adattábla értékeit gyorsan ellenőrizhetjük és módosíthatjuk. Az adatok ellenőrzéséhez és módosításához mindössze egy esemény használatára van szükségünk.

A mellékelt példaprogram megnyitása előtt a TableCheck.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A példaprogram működéséhez szükséges SQL adatbázis létrehozásához futtassa a mellékelt Run_script.cmd programot.
Amennyiben az SQL adatbázis eléréséhez szükséges, ADOConnection1 objektum ConnectionString értéke az Ön beállításainak nem megfelelő, módosítsa annak értékét, hogy az SQL szerver Proba adatbázisa elérhetővé váljon.
A komponens használatához szükséges egy ADOConnection objektum, amelyben beállítjuk az adatbázis elérését. Az ADOConnection objektumhoz a komponens Connection property-jén keresztül kapcsolódhatunk. A TableName property-ben adhatjuk meg az ellenőrizendő tábla nevét.
Az ellenőrzés az Execute metódus meghívásával kezdődik.
A komponens a tábla elejétől kezdődően végigmegy annak összes során. Minden egyes beolvasott sornál létrejön az OnRow esemény.
TRowEvent = procedure(Sender: TObject; var Values: TValuesArray; var Modify: Boolean) of object;
A Values dinamikus tömbön keresztül megkapjuk az adattábla aktuális sorának értékeit. A tömb Variant típusú elemeket tartalmaz. Ha az adott rekord valamelyik értékét módosítani akarjuk, akkor nincs más dolgunk, mint a Values tömb megfelelő elemének értékét megváltoztatnunk. Ha valamilyen adatot megváltoztatunk, akkor a Modify változó értékét igazra kell állítanunk. Ezzel jelezzük a komponens számára a változásokat.
A komponens a módosításokat tranzakcióként kezeli. Ha a tranzakció véglegesítése során valamilyen hiba lépne fel, úgy az adatok nem kerülnek módosításra.
A komponens elkészítése
Az adattábla tartalmát egy ADOQuery komponens segítségével kérdezzük le. A komponenst az adatok elérése mellett, a tranzakciót vezérlő utasítások kiadására is fel fogjuk használni.
Azért, hogy a komponenshez kapcsolt ADOConnection objektum törlésekor a Delphi ne adjon hibaüzenetet, az alábbi metódust kell implementálnunk:
procedure TTableCheck.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited;
  if (AComponent=FConnection) and (Operation=opRemove) then 
    FConnection:=Nil;
end;
Egy SQL tranzakció kezdetét a BEGIN TRANSACTION paranccsal kezdhetjük.
SQL.Add('BEGIN TRANSACTION TEST_TRAN;');
Az adattáblán bármilyen módosítást végezhetünk. A módosításokat később egyszerre aktiválhatjuk, vagy semlegesíthetjük.
A módosítások életbeléptetéséhez a COMMIT TRANSACTION parancsot kell kiadnunk.
SQL.Add('COMMIT TRANSACTION TEST_TRAN;');
A módosítások semlegesítését a ROLLBACK TRANSACTION utasítással kérhetjük.
SQL.Add('ROLLBACK TRANSACTION TEST_TRAN;');
Az adattábla egy adott sorának beolvasásához Variant típusú tömböt használunk, így az adott elemek helyén bármilyen értéket tárolhatunk.

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