HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Adatok karbantartása Oracle alatt


Példaprogram letöltése

8379 bájt

Ebben a példában azzal foglalkozunk, hogy miként lehet megoldani egy adattábla karbantartását az Oracle szerveren. Megoldjuk az adatfelvitelt, módosítást, törlést, szűrést és rendezést. A mellékelt példában egy településeket tároló alkalmazást készítünk.

A mellékelt példaprogram futtatása előtt az Oracle szerver SQLPlus WorkSheet programjával futtassa le a data.sql állományban található SQL szkriptet.
A data.sql állományban található szkript lefuttatása után létrejön a DEMO.CITY adattábla a következő mezőkkel:
Mező Jelentése
TAZON Rekordazonosító.
IRSZ Irányítószám.
MEGYE Megye.
TELEPULES Település.
Az adatokhoz egy ADOQuery komponens segítségével csatlakozunk. Kezdésként a következő SQL parancsot használjuk.
Query.SQL.Add('SELECT * FROM demo.city WHERE LOWER(megye)=' + #39+LowerCase(cbCounty.Text)+#39);
Query.SQL.Add(' ORDER BY telepules');
A cbCounty ComboBox segítségével biztosítjuk a szűrés lehetőségét.
A használható parancsgombok állapotát a Query adatforrás tartalmának megfelelően módosítjuk.
if Query.RecordCount>0 then begin
  bModify.Enabled:=True;
  bDelete.Enabled:=True;
  RefreshFields;
end {if}
else begin
  bModify.Enabled:=False;
  bDelete.Enabled:=False;
end; {else}
A használható gombok beállítását el kell végeznünk a Form létrehozásánál, új rekord felvitelénél, és rekord törlésénél.
Új adat felvitelénél és egy rekord módosításánál az adatokat ugyanazzal az OK gombbal rögzíthetjük. Azért, hogy a módosítást meg tudjuk különböztetni az új adat felvitelétől, egy logikai változóra van szükségünk (FModify), melynek értékét akkor állítjuk igazra, ha módosítást végzünk.
Alapértelmezett esetben le kell tiltanunk azokat az adatmegjelenítő mezőket, amelyeket felvitelre és módosításra használunk. Edit mezők esetében használhatjuk a ReadOnly property-t, ListBox-ok, ComboBox-ok és Button-ok esetében pedig az Enabled property-t.
A DBGrid komponensben letiltjuk a szerkesztést és a CTRL + DEL billentyűkombinációk használatát.
Amikor a felhasználó a Grid-ben kiválaszt egy rekordot, az alatta elhelyezkedő mezőkben meg kell jelenítenünk a mezők tartalmát. A RefreshFields metódust használjuk arra, hogy az adatmezők tartalmát megjelenítsük.
A mezőket csak módosítás vagy új adat felvitele esetén tesszük aktívvá.
Adatrögzítés előtt ellenőriznünk kell a mezők kitöltését. Ha egy adat hiányzik, hibaüzenetet adunk, majd a fókuszt a megfelelő kontrolra irányítjuk.
if Trim(eCity.Text)='' then begin
  ShowMessage('Nincs megadva település!');
  eCity.SetFocus;
  Exit;
end;
A rekordazonosítónak egyedinek kell lennie. A következő lehetséges rekordazonosító meghatározásához használhatjuk a következő algoritmust.
Query2.SQL.Add('SELECT MAX(tazon) FROM demo.city');
Query2.Open;
try
  if (Query2.RecordCount>0) and (Query2.Fields[0].AsString<>'') then
    Kod:=Query2.Fields[0].Value+1
  else
  Kod:=1;
except
  Kod:=1;
end;
Ha több ember visz fel adatokat a hálózatban egyszerre, előfordulhat, hogy kulcsütközés jön létre. A következő lehetséges kulcs meghatározását célszerű egy repeat – until szerkezetbe, és egy try – except blokkba tenni. Ezáltal a program újra meg újra megpróbálja felvinni az adott rekordot.
Új adatfelvitelt az Append, adatmódosítást az Edit paranccsal kezdeményezünk.
Query.Append;
Query.FieldByName('TAZON').Value:=Kod;
A Grid-ben látható rendezettséget az „ORDER BY” SQL paranccsal befolyásolhatjuk.
Ha azt akarjuk, hogy az újonnan felvitt adat az aktuális rendezettségnek megfelelő helyen jelenjen meg, az alábbi kód szükséges.
Query.DisableControls;
s:=Query.FieldByName('TAZON').AsString;
Query.Close;
Query.Open;
Query.Locate('TAZON',s,[]);
Query.EnableControls;
RefreshFields;

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