Delphi 2.0

5. óra

Adatbáziskezelés II.

Feladat: Hallgatói nyilvántartás karbantartása nyomógombok segítségével.

Mezok: Név , Születési dátum, Szem.ig. szám, tankör, ösztöndíj.

Készítsünk egy menübol hívható formot, amin lapozgatni lehet az adatok között.

Megoldás: Válasszuk ki a Database menüpontból az Explore pontot. Erre azért van szükség, hogy egy álnevet (alias) hozzunk létre. Kattintsunk a Database objektumra és nyomjuk meg az egér jobb szemét. Válasszuk ki a New menüpontot. Válasszuk ki az alias típusát (STANDARD) és nyomjuk meg az ok gombot. Írjuk be az új álnevet (ora5)! A Definition részben adjuk meg azt a könyvtárat, amire az alias mutat (path), majd állítsuk be a Default Drivert (DBASE). Kattintsuk a bal oldalon a Database objektumra, majd nyomjuk meg az egér jobb szemét és az apply menüpontra kattintsunk, hogy a beállításokat rögzítse. Ezután zárjuk be a Database Explorer-t.

Indítsuk el a Program files\Borland\Database Desktop könyvtárból a DBD32 (Database Desktop) programot, aminek segítségével tudunk táblákat létrehozni. Állítsuk be a munkakönyvtárat a leendo adataink könyvtárára a File/Working Directory menüpont segítségével. Az aliases-nél pedig válasszuk ki az elobb beállított álnevünket (ora5). És OK gomb. A táblák létrehozásához a File/New/Table menüpontra van szükségünk. Válasszuk ki a kívánt tábla típust (dBASE IV). Írjuk be az elso mezo nevét, a típusát a szóközre kinyíló listából választhatjuk ki, a hosszát kell még megadnunk, a tizedesjegyek számát.

Field Name Type Size Dec
NEV C 25  
SZULDAT D    
SZEMIGSZAM C 8  
TANKOR C 10  
OSZTONDIJ N 4  

Indexet állítsuk be a define gomb lenyomásával (NEV, TANKOR). Az indexelni kívánt mezore kell állni és OK. Ezután már csak a nevet kell megadni ahogyan hivatkozni szeretnénk rá. Ezután Save as... és megadjuk a nevét a táblának: hallgatók (az alias megadására is figyeljünk!).Ezután kiléphetünk a Database Desktop-ból.

Hozzunk létre egy adatmodult (File/New Data Module). A Name tulajdonságához írjunk be egy nevet (adatmodul), majd mentsük el abba a könyvtárba, ahova a táblát is mentettük adatok néven. Helyezzünk el rajta a Data Access palettáról egy Table és egy Data Source komponenst, majd a jellemzoket az alábbiak szerint állítsuk be:

Komponens Jellemző Érték
Table1 Name tblhallgatok
  DatabaseName ora5 (az az álnév, amit létrehoztunk)
  TableName hallgatók
  Active True (ilyenkor tervezés közben is látszanak az adatok)
  IndexName Nev (ami szerint rendezve szeretnénk látni az adatokat)
DataSource1 Name dsrhallgatok
  DataSet tblhallgatok

A form unit-jában (unit1) biztosítsuk az utat az adatmodul felé:

unit unit1;

...

implementation

{$R *.DFM}

uses adatok;

...

end.

A Data Controls palettáról helyezzünk el 5 db DbEdit-et az adatok megjelenítésére, a Standard palettáról 5 db Label-t a magyarázószövegnek, egy ComboBox-ot az index kiválasztásához, 7 db Button-t és 2 db BitButtont az Additional palettáról.

Komponens Jellemző Érték
DBEdit1 Name eNev
DataSource adatmodul.dsrhallgatok
DataField Nev
Enabled False
DBEdit2 Name eSzuldat
DataSource adatmodul.dsrhallgatok
DataField Szuldat
Enabled False
DBEdit3 Name eSzemigszam
DataSource adatmodul.dsrhallgatok
DataField Szemigszam
Enabled False
DBEdit4 Name eTankor
DataSource adatmodul.dsrhallgatok
DataField Tankor
Enabled False
DBEdit5 Name eOsztondij
DataSource adatmodul.dsrhallgatok
DataField Osztondij
Enabled False
Komponens Jellemző Érték
ComboBox Name Cbindex
  Style DropDownList
  Items Név szerint
    Tankör szerint

OnChange eseménye:

procedure TForm1.CBindexChange(Sender: TObject);

begin

if CbIndex.Itemindex=0 then

adatmodul.tblhallgatok.IndexFieldNames:='nev'

else

adatmodul.tblhallgatok.IndexFieldNames:='tankor';

end;

 

Komponens Jellemző Érték
Button1 Name BtnElso
  Caption << Elso

OnClick eseménye:

procedure TForm1.BtnelsoClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

Begin

first;

end;

If BtnUtolso.Enabled=false then

begin

BtnUtolso.Enabled:=true;

BtnKovetkezo.Enabled:=true;

end;

BtnElso.enabled:=false;

BtnElozo.enabled:=false;

end;

 

Komponens Jellemző Érték
Button2 Name BtnElozo
  Caption < Elozo

OnClick eseménye:

procedure TForm1.BtnelozoClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

Begin

prior;

if bof then

Begin

BtnElso.enabled:=false;

BtnElozo.enabled:=false;

end;

end;

If BtnUtolso.Enabled=false then

begin

BtnUtolso.Enabled:=true;

BtnKovetkezo.Enabled:=true;

end;

end;

 

Komponens Jellemző Érték
Button3 Name Btnkovetkezo
  Caption Következo >

OnClick eseménye:

procedure TForm1.BtnkovetkezoClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

Begin

next;

If Eof then

Begin

BtnUtolso.Enabled:=false;

BtnKovetkezo.Enabled:=false;

End;

end;

if BtnElso.enabled=false then

begin

BtnElso.enabled:=true;

BtnElozo.enabled:=true;

end;

end;

 

Komponens Jellemző Érték
Button4 Name BtnUtolso
  Caption Utolsó >>

OnClick eseménye:

procedure TForm1.BtnutolsoClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

Begin

last;

end;

btnUtolso.Enabled:=false;

BtnKovetkezo.Enabled:=false;

if BtnElso.enabled=false then

begin

BtnElso.enabled:=true;

BtnElozo.enabled:=true;

end;

end;

 

Komponens Jellemző Érték
Button5 Name BtnFelvesz
  Caption Felvesz

OnClick eseménye:

procedure TForm1.BtnFelveszClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

begin

insert;

end;

BtnElso.enabled:=false;

BtnElozo.enabled:=false;

BtnUtolso.Enabled:=false;

BtnKovetkezo.Enabled:=false;

BtnTorol.Enabled:=false;

BtnKilepes.Enabled:=false;

btnOk.Enabled:=true;

BtnCancel.Enabled:=true;

Enev.Enabled:=true;

Etankor.Enabled:=true;

Eszemigszam.Enabled:=true;

Eszuldat.Enabled:=true;

Eosztondij.Enabled:=true;

end;

 

Komponens Jellemző Érték
Button6 Name BtnTorol
  Caption Töröl

OnClick eseménye:

procedure TForm1.BtnTorolClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

delete;

end;

 

Komponens Jellemző Érték
BitBtn1 Name BtnOk
  Kind BkOk
  Enabled False

OnClick eseménye:

procedure TForm1.BtnOkClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

begin

FieldByName('Nev').asString:=Enev.text;

FieldByName('Tankor').asString:=Etankor.text;

FieldByName('Szuldat').asDateTime:=StrToDate(Eszuldat.text);

FieldByName('Osztondij').asInteger:=StrToInt(Eosztondij.text);

FieldByName('Szemigszam').asString:=Eszemigszam.text;

post;

end;

BtnElso.enabled:=true;

BtnElozo.enabled:=true;

BtnUtolso.Enabled:=true;

BtnKovetkezo.Enabled:=true;

BtnTorol.Enabled:=true;

BtnKilepes.Enabled:=true;

btnOk.Enabled:=false;

BtnCancel.Enabled:=false;

Enev.Enabled:=false;

Etankor.Enabled:=false;

Eszemigszam.Enabled:=false;

Eszuldat.Enabled:=false;

Eosztondij.Enabled:=false;

end;

 

Komponens Jellemző Érték
BitBtn2 Name BtnCancel
  Kind BkCancel
  Enabled False

OnClick eseménye:

procedure TForm1.BtnCancelClick(Sender: TObject);

begin

with adatmodul.tblhallgatok do

begin

delete;

end;

BtnElso.enabled:=true;

BtnElozo.enabled:=true;

BtnUtolso.Enabled:=true;

BtnKovetkezo.Enabled:=true;

BtnTorol.Enabled:=true;

BtnKilepes.Enabled:=true;

btnOk.Enabled:=false;

BtnCancel.Enabled:=false;

Enev.Enabled:=false;

Etankor.Enabled:=false;

Eszemigszam.Enabled:=false;

Eszuldat.Enabled:=false;

Eosztondij.Enabled:=false;

end;

 

Komponens Jellemző Érték
Button7 Name BtnKilepes
  Caption Kilépés

OnClick eseménye:

Close;

 

Komponens Jellemző Érték
Form1 Name frmkarbantart
  Caption Hallgatók adatainak karbantartása

 

Kérjünk egy új form-ot (File/New Form) és hozzuk létre rajta az elozo ablakot hívó és az alkalmazást befejezo menüpontokat:

Karbantart Kilépés

Állítsuk be az OnClick eseményeket.

procedure TForm1.Karbantarts1Click(Sender: TObject);

begin

frmkarbantart.Showmodal;

end;

procedure TForm1.Kilps1Click(Sender: TObject);

begin

Close;

end;

Adjuk nevet neki a Name tulajdonságának kitöltésével és a címsorába írjunk a Caption használatával.

A Project/Options menüpontban Main form-nak állítsuk be a menüs ablakot és az auto-create forms résznél pedig a legelso helyre húzzuk az adatmodult. (különben nem látja a megjeleníto ablak az adatokat)