
A mellékelt példaprogram megnyitása előtt az SQLDelete.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.
Ahhoz, hogy az SQL szerverhez csatlakozzunk, szükséges egy TADOConnection komponens, amelyhez komponensünk Connection property-jén keresztül csatlakozhatunk.
A TableName property-ben adhatjuk meg az SQL tábla nevét, a KeyColumn-ban pedig annak a mezőnek a nevét, amelynek az értékeit ellenőrizni szeretnénk.
A törlendő értékek listáját a RemoveList, TStringList típusú property-ben adhatjuk meg.
A törlő algoritmus az Execute metódus meghívásával kezdődik.
A komponenst a TComponent osztályból származtatjuk.
Ahhoz, hogy egy ADOConnection objektumot tudjunk használni, a Connection property-t az alábbi módon kell deklarálnunk.
property Connection: TADOConnection read FConnection write SetConnection;
Ha felhasználjuk a komponenst, hozzárendelünk egy ADOConnection objektumot, amelyet utána törlünk, akkor a Delphi hibaüzenetet fog adni. Ennek elkerülésére, implementálnunk kell egy eseményt, amelyben ezt a lehetőséget lekezelhetjük.
procedure TSQLDelete.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited;
if (AComponent=FConnection) and (Operation=opRemove) then
FConnection:=Nil;
end;
A komponens lényege az Execute metódusban található. Az adatbázishoz, egy TADOTable segítségével csatlakozunk. Végig kell néznünk az adattábla összes sorát. A törlés miatt, a sorok végignézését a tábla végéről célszerű elkezdeni visszafelé.
Last;
while not Bof do begin
for i:=0 to FRemoveList.Count-1 do
if TrimRight(TrimLeft(FieldByName(KeyColumn).AsString))=FRemoveList[i] then
Delete;
if not Bof then
Prior;
end;
Minden egyes beolvasott rekord esetén végig kell néznünk a RemoveList-ben megadott értékeket. Ha az adott érték megegyezik a KeyColumn mezőben szereplő értékkel, akkor azt a rekordot töröljük.
A TrimRight és TrimLeft függvények használatára a Char típusú SQL mezők miatt van szükség. Ezeket a szerver szóközökkel egészíti ki a megadott mezőméretre.