Download as rtf, pdf, or txt
Download as rtf, pdf, or txt
You are on page 1of 18

Delphi adatbzis-kezelse

Adatbzis tulajdonsgai
A Delphiben komponenseken keresztl vgezhet relcis adatbzis-kezels.

- File\New Data Module (TDataModule): specilis form.

- TTable: a komponens kapcsolatot teremt a tbla s a komponens kztt.


- DatabaseName: adatbzis elrsi tja (vagy alias).
- TableName: tbla neve.
- Active: az adatbzis aktivltsgt mutatja (boolean).
- RecNo: aktulis rekord sorszma.
- RecordCount: sszes rekord szma.
- Exclusive: a tbla kizrlagos, ms program nem frhet hozz.
- ReadOnly: a tbla csak olvashat.
- DisableControls/EnableControls: a tbla s a DBGrid kapcsolatnak megszntetse, engedlyezse.
- Fields: tmb, amely a tbla mezit tartalmazza.
- FieldCount: a tmb elemeinek szma.

Pl. For i:= 0 to Table1.Field.Count-1 do Table1.Fields[i].DisplayLabel:=IntToStr(i);

- TDataSource: a Table s adatbzis-kezel komponensek kztti kapcsolatot tartja fnn.


- DataSet: a TTable neve.

- TDBGrid: tblzat megjelentje.


- DataSource: a TDataSource komponens neve.

Adatbzis mezi

Egy mez tulajdonsgai:


- rtke: Value: rtk, AsString: stringbe konvertls, AsInteger: integerbe vlts, AsFloat: lebegpontosba vlts,
AsBoolean: logikai, AsDateTime: dtum s id, AsCurrency: pnzformtum, AsVariant: brmilyen tpust felvehet
futs kzben.
- IsNull (boolean): azt mutatja, hogy a mez res-e.
- FieldName: a mez tblabeli neve.
- Name: a mez nevt mutatja (alapban tblanv s meznv konkatenlsa).
- Alignment: a mezrtk megjelensnek igaztsa.
- DisplayFormat: a mez megjelentsi formtuma (pl. 0 darab: "0 darab", # darab: "darab").
- DisplayLabel: a mez megjelensi neve.
- DisplayWidth: a mez szlessge
- MinValue, MaxValue: a mez minimlis s maximlis rtke.
- ReadOnly (boolean): a mez csak olvashat.
- Visible (boolean): a mez lthatsgt adja meg.
- EditMask: a mez bemeneti formtuma (pl. EditMask:=!(999)000-000;1;_ - az "1" azt jelenti, hogy a zrjelek s
szkzk is trolsra kerlnek, a "_" helyettest karakter, megjelense: "(___)___ -___).
- CustomConstraint: a mez beviteli rtkt hatrozza meg (pl. CustomConstraint:=(Nem='Frfi') or (Nem='N') ).
- ConstraintErrorMessage: ha a CustomConstraint jellemzbe rt felttel nem teljesl, hibazenetet ad (pl.
ConstraintErrorMessage:='A szemly neme csak "Frfi" vagy "N" lehet!").
- RecordSize: az aktulis rekord mrete byte-ban.
- FieldByName(mez): a mez sorszmt adja.
- FieldValues: az adott rekord mezinek tartalmt adja.
- ClearFields: A mez sszes rtknek trlse.

- Dupla klikk a Table-n\Add Fields.

1
Pl. Label1.Caption:=DataModule1.Table1KOD.Value;
- Display Label
Pl. DataModule1.Table1DATUM.DisplayLabel:='Dtum';
- DisplayWidth: a mez kijelzsnek szlessge.
- Visible: a mez lthatsgt mutatja (boolean);
- Index: mez sorszma.
- ReadOnly: csak olvashat (boolean);

Adatbzis szrse

- Filter: szrsi felttel.


Pl. (KOD='0001') and (FIZMOD>'1')
Pl. DataModule1.Table1.Filter:='('KOD="0001") and (FIZMOD>"1")';

- Filtered: szrt (boolean).


Pl. DataModule1.Table1.Filtered:=True;
- FilterOptions: loCaseInsensitive (a kis- s nagybetket nem klnbzteti meg),
loNoPartialCompare (rszszra keres).
Pl. DataModule1.Table1.FilterOptions:=[foCaseInsensitive, foNoPartialCompare];

Keress

- Locate: ha megtallja a keresett rekordot, akkor aktuliss teszi.


Locate (const KeyFields:string; const KeyValues:variant; Options:TLocateOptions):boolean;
- KeyFields: keresend mez neve.
- KeyValues: keresett rtk.
- Options: loCaseInsitive (a kis- s nagybetket nem klnbzteti meg),
loPartialKey (rszszra keres).
Pl. DataModule2.Table1.Locate('KOD',Edit1.Text,[loPartialKey]);

- LookUp: a keresett rekord megadott rtkeit adja vissza.


LookUp (const KeyFields:string; const KeyValues:variant; const ResultFields:string:variant);
ResultFields: azoknak a mezknek a nevei, melyeket visszatrsi rtkknt akarunk kapni.
Pl. Label2.Caption:=DataModule2.Table2.LookUp('KOD','0007','DATUM');

Adatok szerkesztse
- llapot lekrdezse: State
State: tbla llapota.
- dsInactive: lezrt llapot,
- dsBrowse: alapllapot,
- dsEdit: szerkeszts alatt ll,
- dsInsert: az aktulis rekord j (beszrs alatt ll).

- j rekord beszrsa: Append (indexelt esetn a pozci utn, egybknt a vgre - a State dsInsert-re vlt)
DataModule1.Table1.Append;
DataModule1.Table1KOD.Value:='0012';
- BeforeInsert: beszrs eltti elem.
- AfterInsert: beszrs utni elem.
- OnNewRecord: minden beszrskor ltrejv esemny (pl. alaprtk-belltsra val).
Pl. DataModule1.Table1FIZMOD.Value:=1;
- AppendRecord(const Values: array of const): megadhatjuk a beszrt rekord rtkt .
Pl. DataModule2.Table1.AppendRecord(['0200',Date,'971211',]);

- j rekord beszrsa az aktulis rekord el: Insert (State=dsInsert)


DataModule1.Table1.Insert;

2
DataModule1.Table1KOD.Value:='0012';

- Aktulis rekord szerkesztse: Edit (State=dsEdit)


DataModule1.Table1.Edit;
DataModule2.Table1.SetFields(['990417',Date]); - Mez tpusnak s rtknek belltsa.

- Adatbzis vltoztatsnak mentse: Post


DataModule1.Table1.Post;
Hiba figyelse annak, hogy mdosthat vagy szerkeszthet-e a rekord:
If DataModule2.Table1.State in[dsEdit, dsInsert] then DataModule2.Table1.Post;
- OnPostError: Post-hiba esetn ltrejv esemny.

- Adatbzis vltoztatsnak visszavonsa: Cancel


DataModule1.Table1.Cancel;

- Aktulis rekord trlse: Delete (nem krdez r)


- OnDeleteError: Delete-hiba esetn ltrejv esemny.
- DataSet: aktulis adatbzis.
- EDataBaseError: adatbzis-hiba esetn ltrejv esemny.
- Action: daFail (hibajelents angolul),
daAbort (trls megszntetse hibazenet nlkl),
daRetry (trls jra megprblsa).

Pl. Table1.Delete;

Adatbzis megnyitsa, lezrsa

Az aktivltsg is hasol tulajdonsg - True esetn nyitott, Fasle esetn zrt (de nem megnyitott s lezrt).

- Megnyits: Open
- BeforeOpen: megnyits eltt ltrejv esemny.
- AfterOpen: megnyits utn ltrejv esemny.
DataModule1.Table2.Open;

- Bezrs: Close
- BeforeClose: bezrs eltt ltrejv esemny.
- AfterClose: bezrs utn ltrejv esemny.
DataModule1.Table2.Open;

Pozcionls

Ha nem alapllapotban van a tbla (State<>dsBrowse) akkor Post-ot hajtanak vgre.

- Els rekordra ugrs: First


DataModule1.Table1.First;

- Utols rekordra ugrs: Last


DataModule1.Table1.Last;

- Elz rekordra ugrs: Prior


DataModule1.Table1.Prior;

- Kvetez rekordra ugrs: Next


DataModule1.Table1.Next;

3
- Tbb rekordnyi ugrs: MoveBy(elem:integer)
DataModule1.Table1.MoveBy(-5)

- BeforeScroll: lptets eltt ltrejv esemny.


- AfterScroll: lptets utn ltrejv esemny.

- BOF (boolean): a tulajdonsg azt mutatja, hogy els-e az elem.


- EOF (boolean): a tulajdonsg azt mutatja, hogy utols-e az elem.

Pl.
Table1.First
While not Table1.EOF do begin
Table1.Edit;
Table1DATUM.Value:=Date;
Table1.Next;
end;

- Knyvjelz elhelyezse: GetBookMark


bo:= DataModule2.Table1.GetBookmark;

- Ugrs a knyvjelzre: GotoBookMark(knyvjelz)


DataModule2.Table1.GotoBookMark(bo);

- Knyvjelz trlse: FreeBookMark(knyvjelz)


DataModule2.Table1.FreeBookMark(bo);

Kt adatbzis sszekapcsolsa
Kt adatbzist egy-egy mezn keresztl kapcsolunk ssze, a segd adatbzistl kiindulva.

Pl.
2 adatbzisban, egy KOD-on tbb ttel. A KOD az azonost mindkt adatbzisban. A 2 adatbzisban az azonostkat
vgig ismteljk.

Master: Detail:
KOD KOD
00001 00001
00001
00002 00002

A 2 adatbzis KOD mezje indexelt legyen (IndexName). A 2 adatbzis kapcsolatt a segd (Detail) adatbzisnl
kezdemnyezzk.
1. MasterSource=TDataSource (a f adatbzis).
2. Property\Detail Fields =KOD (az sszekapcsol mez - lehet ms nev, mint a MasterFiled).
3. MasterField: KOD (az sszekapcsol mez).
4. Add gombbal ltre kell hozni a kapcsolatot.

Szmtott mezk (Calculated Field)


A kalkullt mez olyan mez, mely msik mezk rtkbl szmthat ki. Nem kell j mezt fizikailag ltrehoznunk.

- TTable menszerkeszt ablakban (2 klikk a komponensen) jobb egrgomb, majd New Field: Type=Float (ha
lebegpontos kell), FieldType=Calculated.

4
- TTable Event\OnCalcField: annyiszor jn ltre, ahny rekordra kell kiszmtani az adott rtket, rtkeket, gy egy-
egy esemnykor mindig az aktulis rekord rtkeibl szmthatjuk ki a kvnt rtkeket.

A kalkullt mez csak olvashat!

Pl.
Procedure TDataModule2.Table1CalcFields(DataSet: TDataSet);
begin
Table1RESZAR.Values:=Table1MENNYISEG.Values;
Table1AR.Value;
end;

Kapcsolt mezk (Lookup Field)


Egy mez adatait felesleges lehet llandan ismtlden megadni (pl. NEME='Frfi'). Hatkonyabb, ha kdot
rendelnk hozz, hiszen gy kisebb az adatbzis. Ehhez az aktulis tblt ssze kell kapcsolni a msik
(keres)tblval egy-egy sszekapcsol mezn keresztl, s a kerestbla kvnt mezjbl tvesszk az rtkt.

- j mez ltrehozsa: TTable\New Field\Type=LookUp, KeyFields: az alaptbla sszekapcsol mezje, Dataset: a


kerestbla neve, LookUp Keys: a kerestbla sszekapcsol mezje, Result Field: a kerestblnak ebbl a
mezjbl vesszk t az eredmnyt.

- A mez lthatsgnak letiltsa:


Pl. Table1.FieldByName('MEZO').Visible:=False;

Mezk rtknek korltozsa

- TTable Constrains property-re kattintva eljn a segdablak, ahol feltteleket adhatunk (Add).

- CustomConstraint: szveges felttelads (lsd a II. alcm alatt).

- DisableConstraints/EnableConstraints: korltozs tmeneti tiltsa/engedlyezse.

Rekord vgleges trlse: DbiPackTable, dBase-nl: Pack


A Delete nem fizikailag trli a rekordot, valjban csak trlsre jelli ki.

- DbiPackTable;
E mvelet eltt az adatbzist kizrlagoss kell tenni (ilyenkor nem frhet hozz ms program):
TTable.Exclusive:=True;

- A trlt rekordok megjelentse:


- DbiSetProp;
- iPropValue (boolean): a trlt elemek lthatsga.
- Refresh: elemek lthatsgnak frisstse.

Adatbzis ltrehozsa s trlse


- Adatbzis trlse: DeleteTable;

Pl.
With DataModule2.Table1 do
begin
Close;
EmptyTable; //rekordok trlse

5
Open;
end;

- Adatbzis ltrehozsa: CreateTable;


Eltte:
- A tblzat adatait megadjuk.
- FieldDefs propertiesben definiljuk a mezket (a FieldDefs properties TFiledDef tpus).
- IndexDefs: propertiesben megadjuk az indexeket.

Pl.
With DataModule2.Table4 do begin
begin
Close;
DatabaseName:='ADATBAZIS';
TableName:='TABLE.DBF';
TableType:=ttBase;
With FieldDefs do
begin
Add('String', ftString, 10, False);
Add('Boolean',ftBoolean, 0, False);
end;
With IndexDefs do
begin
Add('Index', string, []);
Add('Index2','DAT',[]);
end;
CreateTable;
Open;
end;

- j mez ltrehozsa:
Add(Name;DataType; Size; Required);
- Name: az j mez neve.
- DataType: az j mez tpusa.
- Size: az j mez mrete (nem ktelez minden esetben megadni).
- Required: maradhat-e resen.

- Clear: az sszes felvett elem trlse.


- Count: az aktulisan megadott mezk szma.

Pl.
With Table1.FieldDefs do
begin
For i:= 0 to Count-1 do
begin
ListBox1.Items.Add(Items[i].Name);
end;
end;

Items properties: egy TFieldDefs tpus elemeket trol tmb, melyben pl. a mezk neveit trolhatunk (.Name
esetn) - 0..n-1.

Az Items-ben a Find-del kereshetnk.

Pl.
With Table1.FieldDefs do

6
begin
With Find('MEZO') do
begin
DataType:=ftString;
end;
end;

IndexOf(Name): azt mutatja, hogy a Name hnyadik elem az indexben.

Rekordok trlse Master-Detail kapcsolatban

1. A segdtbla trlse rekordonknt (a kapcsolt rekordok ltszanak).


2. A ftbla trlse.

Pl.
While not Table2.EOF do
Table2.Delete;
Table1.Delete;

TDataSource

Az Table s a DBGrid kztti kapcsolatot tarja fenn.

- State (llapot):
- doInactive: inaktv,
- doBrowse: megjelents alatt,
- doEdit: szerkeszts alatt,
- doInsert: j elem beszrsa trtnik,
- SetKey: keress vagy nszrs alatt,
- doCalcFields: kalkullt mez kiszmtsa trtnik
- doFilter: szrs alatt.

- Esemnyek (Events):
- onStateChange: az llapot megvltozott,
- onDataChange: az adatbzis tartalma megvltozott,
- onUpdateData: Post esemny ltrejtt,

- AutoEdit (boolean):
Ha True, akkor brmikor vltoztathat, ha False, akkor csak az Esit parancs kiadsa utn.

TQuery
A lekrdezs nem szrhet filterrel.

- DataBaseName=az adatbzis helynek elrsi tja, vagy aliase.


- SQL: SQL-ben lert szveges felttel (TString tpus).
Pl. SELECT * FROM SZLAFEJ.DBF WHERE SZAM>80
- Active (boolean): ha True, ekkor elvgzi a lekrdezst, ha False, akkor nem trtnik lekrdezs.

SQL (Structural Query Language - struktrlt lekrdez nyelv) SELECT utastsa

- SELECT mez1, mez2 FORM adatbzis - a mez1 s a mez2 mez kivlasztsa az adatbzisbl
SELECT * FROM adatbzis - az sszes mez kivlasztsa az adatbzisbl

- WHERE - felttel

7
Pl. SELECT * FROM SZLAFEJ.DBF WHERE FIZMOD>"1" (csak 1-nl nagyobb fizmodu rekordok jelennek
meg)

- AND, OR - tbb felttel


Pl. SELECT * FROM SZLAFEJ.DBF WHERE (FIZMOD>"1") AND (VEVOKEDO<>"02")

- NOT - nem

- IN - egy megadott halmazban lv elemekkel hasonlt ssze


Pl. SELECT * FROM SZLAFEJ.DBF WHERE VEVOKOD IN ("0001","0003","0008")

- LIKE - tredk keresse


- "%": akrhny tetszleges karakter,
- "_": egy tetszleges karakter,
- "\": vezrl karakter megadsa eltti jelz
Pl. SELECT * FROM SZLAFEJ.DBF WHERE NEV LIKE 'al\%%' (az "al%" stringrszlet keresse)

- BETWEEN - kt rtkhatr ellenrzse (a kt rtket is beleszmtja)


Pl SELECT * FROM PROBA.DBF WHERE MEZO BETWEEN 50 and 200 (azokat a rekordokat jelenti meg,
amelyek 49 s 201 kztti rtket vesznek fel)

- || - konstans string konkatenlsa mezstringgel


Pl. SELECT * FROM PROBA:DBF WHERE MEZO1<>'abc' || MEZO2

- DISTINCT - azonos elemek kzl csak egy elem kivlasztsra szolgl


Pl. SELECT DISTINCT TERMEK FROM SZAMLA.DBF

- ORDER BY - rendezs
- ASC/DESC - nvekv/cskken sorba val rendezs
Pl. SELECT * FROM SZLAFEJ.DBF WHERE FIZMOD="1" ORDER BY DATUM DESC (DATUM szerint
rendezi az adatbzist)

- AVG(mez) - a mez rekordonknti tlagt adja meg


Pl. SELECT AVG(MENNYISEG) FROM SZLATET.DBF

- COUNT - annak a szmt adja meg, ahny rekord megfelel a felttelnek

- SUM - a mez rekordonknti sszegt adja meg


Pl. SELECT SUM(MENNYISEG) FROM SZLATET.DBF WHERE AR='12'

- MIN/MAX - a mez legkisebbikt/legnagyobbikt adja meg


Pl. SELECT SUM(MENNYISEG), MIN(MENNYISEG) FROM SZLATET.DBF

- GROUP BY - csoportja a megadott mezt


Pl. SELECT KOD, SUM(MENNYISEG) FROM SZLATET.DBF GROUP BY KOD

- HAVING - szrs
Pl. SELECT KOD, SUM(MENNYISEG) FROM SZLATET.DBF GROUP BY KOD HAVING
SUM(MENNYISEG)>15

- Kt adatbzis sszehasonltsa: (kt SELECT parancs kell, s elszr a 2. SELECT halytdik vgre)
Pl. SELECT * FROM OSZTALY WHERE OATLAG<>(SELECT AVG(OSZTALYZAT) FROM TANULO

Lekrdezsek paramterezse

Egy lekrdezsnl nha nem kell magt az SQL SELECT utastst vltoztatni, elg egy konstanst.

8
:vltoz

Pl. SELECT * FROM SZLAFEJ.DBF WHERE KOD=:K

- Params[n]: n. paramtervltoz tpusa


Pl.
With DataModule1.Query1 do
begin
Close;
Params[0].AsInteger:=145;
Open;
end;

- ParamByName(const String): paramtervltoz neve


Pl.
With DataModule1.Query1 do
begin
Close;
ParamByName('K').Value:=Edit1.Text;
Open;
end;

- A TQuery-t Open-nel nyitjuk s Close-zal zrjuk.

- Prepare: optimalizlhatjuk vele a lekrdezs futst (a Delphi autmatikusan teszi).

Paramterezett lekrdezsek automatizlsa

- SELECT * FROM SZLAFEJ.DBF WHERE KOD:=KODV

- DataSource propertiesben meg kell adni az adatbzis nevt.

SQL utasts szerkeszthetsge

RequestLive (boolean): ha True, akkor szerkeszthet az SQL string (a szerkeszthetsg fgg magtl az SQL
stringtl is).

TBachMovie: tbb adatbzis lemsolsa

1. Source: itt kell megadni, hogy honnan vegye a rekordokat (TDataSet).


2. Destination: itt kell megadni, hogy hova tegye a rekordokat (TTable).
3. DataBaseName: az adatbzis neve.
4. TableName: a tbla neve.
5. Mode: md
(Indexeltek legyenek az adatbzisok.)
- batAppend: a forrsadatbzis sszes rekordja hozzfzdik a cladatbzishoz.
- vatUpdate: a forrsadatbzis egyez mezit trja a ms rtkeket tartalmaz cladatbzisba.
- batCopy: akr nemltez cl adatbzisba rja a forrsadatbzist.
- batDelete: a cladatbzisban trldnek azok a rekordok, amelyek egyeznek a forrsadatbzis rekordjaival.
6. Execute: vgrehajts
- Programfuts alatt:
Pl.
With BatchMove1 do
begin

9
Source:=Query1;
Destination:=Table1;
Mode:=batCopy;
Execute;
end;

- Fejlesztsi idben: Jobb egrgomb a TBatchMove-n\Execute.

Egyb lehetsgek:
- ChangedTableName: itt llomnynevet adhatunk meg, amely nven ltrehoz egy Paradox adatbzist (Execute
utasts esetn), amelybe a vltoztatott rekordok kerlnek.
- ProblemTableName: az itt megadott llomnynven ltrejn egy Paradox adatbzis, amelybe a hibs rekordok
kerlnek.
- KeyViolTableName: az itt megadott llomnynvel ltrejn egy Paradox tbla, amelybe a forrsadatbzisbl a
rekordok bekerlnek.
- AbortOnProblem: (boolean): ha True, akkor az els hibs rekord msolsa utn a folyamat megszakad.
- AbortOnKeyViol: ha True, akkor az els rekord msolsa utn kilp.
- MovedCount: azt mutatja, hogy hny rekord kerlt mdostsra vagy msolsra a cladatbzisban.
- ChangedCount: azt mutatja, hogy a ChangedTableName-ben megadott adatbzisba hny rekord kerlt.
- ProblemCount: azt mutatja, hogy hny hibs rekord van.
- KeyViolCount: megadja a hibs rekordok szmt.
- CommitCount: azt mutatja, hny rekord kerlt t sikeresen az j tblba.
- RecordCount: itt korltozhatjuk, hogy maximum mennyi rekord kerlhet a forrsadatbzisbl a cladatbzisba. 0
esetn nincs korltozs.
- Mappings: j, ha a forrs- s cladatbzis meznevei nem azonosak. Itt megadhatjuk, hogy a forrs- s cladatbzis
mely mezit tekintse azonosnak.
Pl. VAROS=V1, NEV=ALKALMAZOTT

TUpdateSQL

- DeleteSQL: SQL trlse.

- Insert SQL: SQL beszrsa.

- Modify SQL: SQL mdostsa.

- TUpdate Kind: ukModify, ukInsert, ukDelete (mdostott, beszrt, trlt).

- SQL: az SQL string tmbn keresztl is elrhet.


Pl. UpdateSQL1.SQL[ukModify]:=Memo1.Lines;

- Query: TQuery elemeit tartalmaz tmb


Pl. UpdateSQL1.Query[ukModify].DataBaseName='Proba';

- Utasts futtatsa:
ExecSQL(UpdateKind: TUpdateKind);

TDBGrid

Az adatbzis tblzatos megjelentsre szolgl. 1. elem: 0, utols elem: Count-1.

1. DataSource-szel kapcsolni kell a Table-hz.

Tulajdonsgok:
- Columns: fejlc (oszlopok cmkje - mezk) belltsa.
j fejlc hozzadsa: DBGrid.Colums.Add;

10
- FieldName: a DataSource-szel kapcsold tbla egy mezje.
- Title: a megjelen fejlc formzsa s szvege.
- Items: a TColumn tpus tmb elemei ezen keresztl rhetek el.
- Count: azt mutatja, hogy hny oszlop van.
Pl.
For i:=0 to DBGrid1.Columns.Count-1 do
begin
DBGrid1.Columns.Items[i].Color:=clRed;
end;
- Clear: elem trlse (az adatbzisbl is trli - nem fizikailag).
- FieldName: mezk nevei.
Pl.
DBGrid.Columns.Add.FieldName:='Datum';
DBGrid.Columns.Items[2].FieldName:=Fizmod';
- Field: az adatbzis adott mezjt rhetjk el vele.
Pl. Label1.Caption:=DBGrid.Columns.Items[2].Field.AsString;
- Color: a tblzat adott oszlopnak a httrszne.
Pl. DBGrid1.Columns.Items[4].Color:=clRed;
- Font: a tblzat adott oszlopnak a bettpusa.
- Style: stlus,
- Color: karakterszn.
Pl. Font.Style:=[fsBold];
- Alignment: szveg igaztsa.
- taLeftJustify: balra igazts,
- taRightJustify: jobbra igazts,
- taCenterJustify: kzpre igazts.
- PopupMenu: legrdl ment rendelhetnk egy oszlophoz (futs kzben jobb egrgombbazl rhetjk el).
- ReadOnly: a kivlasztott oszlop csak olvashat.
- ButtonStyle: itt megadhatjuk, hogy mi trtnjen, ha a megadott oszlopba lpnk.
- cbsName: alaprtelmezett neve,
- cbsEllipsis: egy nyomgomb jelenik meg, amelyben egy onEditButtonClick esemny keletkezik.
- cbsAuto: oszlopba lpskor ComboBox jn ltre, ahonnan adatokat juttathatunk a cellba. PickList-ben rhatjuk
le, mit tartalmazzon a ComboBox. A DropDownRows-ban megadhatjuk, hogy egyszerre hny elem ltszdjon a
ComboBox-ban.
- Width: itt az oszlop szlessgt korltozhatjuk.
Pl. DBGrid1.Columns.Items[5].Width:=20;
- Title: fejlc szvege.
- Caption: a fejlc megjelensi neve,
- Align: szveg igaztsa,
- Color: httr szne,
- Font: bettpus.
Pl.
DBGrid1.Columns.Items[1].Title.Caption:='Dtum';
DBGrid1.Columns.Items[1].Title.Color:=clRed;
- FieldCount: a mezk szma.
- SelectField: aktulis mez
- SelectedIndex: az aktulis oszlop sorszma.
Pl. Label1.Caption:=DBGrid1.SelectedField.AsString;
- TitleFont: fejlc bettpusa (az sszes oszlop fejlcre rvnyes).
Pl. DBGrid2.TitleFont:=FontDialog1.Font;
- EditorMode: azt mutatja, hogy szerkeszts alatt ll-e a grid.
- Option: belltsok (boolean tpus elemek)
- dgEditing: ha True, akkor a gridben is szerkeszthetjk az adatokat,
- dgAlwaysShowEditor: True esetn automatikusan szerkeszthet a mez, False esetn Enter-re vagy F2-re,
- dgTitles: ha True, a fejlc lthat,
- dgIndicator: True esetn a grid szli indiktor lthat,

11
- dgColumnResize: ha True, az oszlopok mrete vltoztathat,
- dgColLines: True esetn az oszlopelvlaszt vonal lthat,
- dgRowLines: True esetn a sorelvlaszt vonal lthat,
- dgTabs: ha True, akkor a gridben rvnyes a TAB s a SHIFT+TAB,
- dgConfirmDelete: True esetn a CTRL+DELETE-tel trlhet az aktulis sor,
- dgMultiSelect: ha True, akkor a CTRL+nyilakkal (rszenknt) vagy a SHIFT+nyilakkal (egysgknt) tbb elem is
kijellhet,

Esemnyek:
- onTitleClick: oszlop fejlcre val kattints esemnye. TColumn vltoz jn ltre, amely az aktulis oszlop szmt
adja meg.
Pl.
Label1.Caption:=Column.Title.Caption;
Column.Title.Color:=clRed;
- onColEnter: ez az esemny akkor jn ltre, amikor egy oszlopra lpnk.
- onColExit: akkor jn ltre ez az esemny, ha egy oszloprl kilpnk.
Pl. Label1.Caption:='Ez a tblzat'+IntToStr (DBGrid1.SelectedIndex)+'.oszlopa';
- onCellClick: celln val kattints esemnye. Ltrejn egy TColumn vltoz, amely az aktulis oszlop szmt adja
meg.
- onColumnMoved: akkor jn ltre ez az esemny, ha egy oszlopot thelyeznk. Ltrejn egy FromIndex s egy
ToIndex vltoz, melyek azt mutatjk, hogy hnyadik oszlop hnyadik oszlop helyre kerl.

TDBNavigator

Adatbzis-mozgat gombsor.

1. Ltre kell hozni a kapcsolatot a DataSource-n keresztl.

TNavigateBtn tpus konstansok:


- nbFirst: els rekordra ugrik (TTable.First).
- nbPrior: egyel visszalp (TTable.Prior).
- nbNext: kvetkez rekordra lp (TTable.Next).
- nbLast: utols rekordra ugrik (TTable.Last).
- nbInsert: j rekordot szr be.
- nbDelete: aktulis rekordot trli.
- nbEdit: szerkesztmdba lp.
- nbPost: elmenti a vltoztatsokat.
- nbCancel: rvnytelenti a vltoztatsokat.
- nbRefresh: jraolvassa az adatokat (ha mskppen is megvltozhatott az adatbzis).

Tovbbi lehetsgek:
- VisibleButton: azt mutatja, melyik gombok ltszdnak.
- Hint: az egsz komponens magarzszvege.
- Hints: nyomgombok magyarzszvege (sorrendben egy-egy sor egy-egy nyomgombhoz tartozik).
- ConfirmDelete: megerstskrst vgez a trlshez (angolul).
- BtnClick(TNavigateBtn): valamely gomb megnyomsnak szimullsa.
Pl. DBNavigator1.BtnClick(nbFirst);
- Flat: True esetn a nyomgomb krvonala csak akkor ltszdik, ha fltte llunk az egrrel, s nincs letiltva.
- BeforeAction: ez az esemny akkor jn ltre, ha lenyomtunk egy gombot, de mg nem hajtdott vgre a parancs.
Kapunk egy TNavigateBtn tpus Button vltozt, amely azt mutatja, hogy melyik gombot nyomtuk meg.
Pl.
If Button=nbDelete then
begin
If MessageDlg('Trls megerstse', mtConfirmation, mbOkCancel, 0)<>mrOk then Abort;
- onClick: nyomgomb lenyomsa, s a parancs vgrehajtsa utni esemny. Button vltozt kapunk, amely
megadja, hogy melyik gomb lett lenyomva.

12
TDBText

Az aktulis mez megjelentse szolgl.

- DataSource: adatbzis.
- DataField: mez.
- Field: program futsa alatt a mezt ezzel rhetjk el.
Pl.
DBText1.DataSource1.DataSet.Edit;
DBText1.Field.Value:=Date;
- AutoSize (boolean): Tue esetn a komponens szlessge automatikusan vltozik.
- Transparent (boolean): True esetn a DBText mgtt elhelyezked komponens is lthat.

TDBEdit

Az aktulis mezt megjelenthetjk s szerkeszthetjk a beviteli mezben. A komponensbe rt stringre (vagy


konvertlt rtkre) vltoztatja a mezt, ha a tbla mdosthat.

- DataSource: adatbzis.
- DataField: mez.
- CharCase: a bert szveg megjelensi mdja.
- ecLowerCase: minden bett kisbetre vlt,
- ecNormal: alap,
- ecUpperCase: minden bett nagybetre vlt.
- ReadOnly (boolean): True esetn csak olvashat.
- PasswordChar: ha nem #0, akkor az ide bert karakter fog megjelenni begpels kzben (pl. *). Az adatbzisban az
eredeti adat fog megjelenni.
- MaxLength: a beviteli mez maximum hosszt adja (ha nem 0).
- AutoSelect (boolean): ha True, akkor a komponensre fkuszls utn automatikusan kijelli a benne foglalt teljes
stringet.
- Modified (boolean): azt mutatja, hogy megvltozott-e a szveg tartalma.
Pl. If Edit1.Modified then...
- SelText: a kijellt szveget trolja el.
- SelStart: a kijells els karaktere,
- SelLength: a kijellt string hossza.
- Text: a DBEdit-et Text stringgel vltoztathatjuk meg s krhetjk le.
- Field: egy mezt rhetnk el vele
Pl. DBEdit.Field.AsString:='Hah!';
- Clear: trli a komponens tartalmt.
- SelectAll: kijelli a teljes szveget.
- ClerSelection: a kijellt szvegrszt trli.
- CopyToClipboard: a vglapra msolja a kijellt szveget.
- CutToClipboard: kivgja a vglapra a kijellt szveget.
- PasteFromClipboard: a vglapra msolt szveget beilleszti a megadott komponensbe.
- onChange: ltrejn ez az esemny, ha a DBEdit tartalma megvltozik.

TDBMemo

Tbbsoros beviteli mez.

- DataSource: adatbzis.
- DataField: mez (az adatbzis mezje Memo tpus legyen!).
- Field: egy mezt rhetnk el vele.
DBMemo1.Field.DisplayLabel:=Ez egy mez;

13
- AutoDisplay (boolean): ha True, akkor automatikusan megjelenik a DBMemo tartalma, amikor az adatbzisban
lpkdnk.
- ReadOnly (boolean): ha True, akkor csak olvashat.
- AlignMent: szveg igaztsa.
- taLeftJustify: balra igazts,
- taCenter: kzpre igazts,
- taRightJustify: jobbra igazts,
- MaxLength: a maximlisan megadhat karakterek szmt adja meg.
- ScrollBars: grgetsvok.
- ssNone: nincs,
- ssHorizontal: vzszintes,
- ssVertical: fggleges,
- ssBoth: vzszintes s fggleges.
- WantTabs (boolean): True esetn a TAB lenyomst a DBMemo-n bell rzkeli.
- WordWarp (boolean): True esetn a sor vgn lemaradt szvegrsz tkerl a kvetkez sorba, False esetn az egsz
sz.
- Lines: a DBMemo sorai.
- Add(string): sor hozzadsa.
- Modified (boolean):a szveg megvltozottsgt jelzi.
- LoadMemo: egy file tartalmval tlti fel a DBMemo-t.
- SelectAll: kijelli a teljes szveget a komponensen bell.
- Clear: trli a DBMemo tartalmt.
- ClearSelection: a kijellt szveget trli.
- CopyToClipboard/CutToClipboard/PasteFromClipboard: vglap hasznlata.

TDBImage

Az adatbzisban lv kpeket jelenti meg.

- DataSource: adatbzis.
- DataField: mez (az adatbzis mezje dBase esetn binary, egyb esetn egyb kpformtum legyen!).
Az adatbzismezbe j kpet beilleszteni, illetve onnan kpet kimsolni a vglapon keresztl lehet (CTRL+C,
CTRL+X, CTRL+V).
- Field: egy mezt rhetnk el vele.
- AutoDisplay (boolean): True esetn mindig megjelenti az aktulis rekord DBImage-t, False esetn a LoadImage
eljrssal kell betltennk.
- Stretch (boolean): ha True, a kp mrett a komponens mrethez igaztja (nyjtja).
- QuickDraw (boolean): True esetn nem hasznl specilis palettt a kp kirajzolshoz, hanem csak 256 sznt.
(Alapesetben True.)
- BorderStyle: itt azt lehet belltani, legyen-e keret.
- bsNone: nincs keret,
- bsSingle: van keret.
- Picture: kzvetlenl elrhetjk vele a kpet.
Pl.
BitBtn(PaintBox1.Canvas.Handle, 0, 0, DBImage1.Picture.Width, DBImage1.Height,
DBImage1.Bitmap.Canvas.Handle, 0, 0, srcCopy);
- ReadOnly (boolean): ha True, akkor csak olvashat.
- LoadImage: egy file tartalmval tlti fel a DBImage-et.
- CopyToClipboard/CutToClipboard/PasteFromClipboard: vglap hasznlata.

TDBListBox

Adatbzishoz igazod listadoboz. A listadobozban kivlasztott elem kerl a rekordmezbe. Ha a rekord kivlasztott
eleme megegyezik a listadoboz egyik elemvel, akkor az az elem a listadobozban is ki lesz vlasztva.

- DataSource: adatbzis.

14
- DataField: mez.
- Field: egy mezt rhetnk el vele.
- Items: a listadoboz elemei, a rekord mezi a listadobozban.
- Add(elemnv): j elem hozzadsa.
- ReadOnly (boolean): ha True, akkor csak olvashat.
- onDrawItem: olyan esemny, amely akkor jn ltre, ha kirajzol egy listaelemet.
- Style: stlus.
- lbStandard: alap,
- lbOwnerDrawFixed: lland mret elemek,
- lbOwnerVariable: vltoz mret elemek.
- ItemHeight: az egyes elemek magassga (Style=lbStandard esetn nem kell vltoztatnunk).
- IntegralVariable: a listadoboz szlessge a listaelemek egszszm megjelenshez igazodik.
- ItemIndex: a kivlasztott elem sorszmt adja meg (0-tl Count-1-ig), ha rtke 1, akkor nincs kivlasztott elem.
- Selected (boolean tmb): minden egyes elem kivlasztottsgt mutatja (True esetn a megadott elem kivlasztott).

TDBComboBox

Adatbzishoz igazod ComboBox. A listbl kivlasztott elem kerl a mezbe. Ha megvltozik az aktulis rekord,
akkor komponens tartalma is megvltozik arra az rtkre, amelyet az adatbzis tartalmaz. Ha az adatbzisban olyan
rtk van, amely nem szerepel a ComboBox-ban, akkor semmi sem jelenik meg komponensben. Ha egy msik
elemet vlasztunk ki, akkor az adatbzis automatikusan szerkeszthet zemmdba kerl.

- DataSource: adatbzis.
- DataField: mez.
- Field: egy mezt rhetnk el vele.
- Items: a listadoboz elemei, a rekord mezi a listadobozban.
- ReadOnly (boolean): ha True, akkor csak olvashat.
- ItemIndex: a kivlasztott elem sorszmt adja meg (0-tl Count-1-ig), ha rtke 1, akkor nincs kivlasztott elem.
- Sorted (boolean): True esetn rendezett a lista.

TDBCheckBox

Adatbzishoz igazod, kt- vagy hromelem doboz (logikai tpus rtkekhez ajnljk).

- DataSource: adatbzis.
- DataField: mez.
- Field: egy mezt rhetnk el vele.
DBCheckBox1.Field.DisplayValues:=igaz; hamis;
- ReadOnly (boolean): ha True, akkor csak olvashat.
- AllowGrayed (boolean): True esetn hromrtk (iksz/szrke iksz/res), False esetn ktrtk.
- Checked: elemek kivlasztottsgt mutatja.
- State: hromelem esetn az llsa.
- cbUnchecked: nem kivlasztott,
- cbChecked: kivlasztott,
- cbGrayed: harmadik rtk (szrktett).
- ValueChecked: itt lehet megadni, hogy milyen szveges rtk feleljen meg az igaz rtknek (pontosvesszvel tbb
rtket is megadhatunk).
Pl. CheckBox1.ValueChecked:=igaz;i;
- ValueUnchecked: a hamis rtk szveges megfelelje.

TDBRadioGroup

Erre a komponensre akkor lehet szksg, ha vges szm elem kzl csak egyet kell mkivlasztani.

- DataSourcs: adatbzis.
- DataField: mez.

15
- ReadOnly (boolean): a komponens csak olvashat.
- Items: a komponens elemei.
- Columns: a megjelent oszlopok szma.
- Values: az rtkek soronknti hozzrendelse az elemekhez.
- Caption: a fejlc szvege.
- ItemIndex: megmutatja, hogy hnyadik az aktulis elem (0-tl kezddik a szmols).
- CanModify (boolean): True esetn az adott mez rtkt megvltoztathatjuk.

TDBLookUpListBox

A lista elemeit nem mi adjuk meg, hanem egy msik adatbzis szolgltatja.

- DataSource: a fadatbzis, ahov az elemek kerlnek.


- DataField: a fadatbzis azon mezje, ahov a ListaSource-ben s a KeyField-ben megadott mez tartalma kerl.
- ListSource: a segdadatbzis, ahol a lista elemeit troljuk.
- ListField: a lista elemeit trol segdadatbzis mezje (tbb mezt is megadhatunk ;-vel - tbb oszlopban jelenik
meg).
Pl.
With DBLookUpListBox1 do
begin
ListField:=NEV;CM;TELEFON;
end;
- KeyField: a segdadatbzisban ennek a meznek az rtke kerl be a fadatbzisba.
Pl.
With DBLookUpListBox1 do
begin
ListSource:=DataSource2;
ListField:=NEV;
KeyField:=KOD;
DataSource:=DataSource1;
DataField:=VEVOKOD;
end;
- Field: a fadatbzis egy mezje.
- ListFieldIndex: tbb mez megadsa esetn a mez szma (0-tl).
Pl. ListField:=NEV;CM;TELEFON;
Ha a ListFieldIndex=1, akkor a CM mez alapjn keresi a bert rtket.
- KeyValue: a KeyField-ben megadott mez rtke.
Pl. Label1.Caption:=DBLookUpListBox1.KeyValue;
- SelectedItems: az aktulisan kivlasztott elem szvege.
- RowCount: az ablak sorainak szma.

TDBLookUpComboBox

- DataSource: a fadatbzis, ahov az elemek kerlnek.


- DataField: a fadatbzis azon mezje, ahov a ListaSource-ben s a KeyField-ben megadott mez tartalma kerl.
- ListSource: a segdadatbzis, ahol a lista elemeit troljuk.
- ListField: a lista elemeit trol segdadatbzis mezje (tbb mezt is megadhatunk ;-vel - tbb oszlopban jelenik
meg).
- KeyField: a segdadatbzisban ennek a meznek az rtke kerl be a fadatbzisba.
- Field: a fadatbzis egy mezje.
- ListFieldIndex: tbb mez megadsa esetn a mez szma (0-tl).
- KeyValue: a KeyField-ben megadott mez rtke.
Pl. Label1.Caption:=DBLookUpListBox1.KeyValue;
- DropDownAlign: az elemek igaztsa.
- daLeft: balra igazts,
- daRight: jobbra igazts,

16
- daCenter: kzpre igazts.
- DropDownRows: a lista megjelen elemeinek szma.
- DropDownWidth: a lista szlessge.
- ListVisible (boolean): True esetn a lista lthat.
- Text: az aktulisan szerkesztett mez tartalma.

TDBRichEdit

Adatbzisban trolt Rtf file-ok megjelentsre szolgl.

- DataSource: adatbzis.
- DataField: adatbzis mezje.
- Field: a mez elrse.
- ReadOnly (boolean): csak olvashat.

TDBCtrlGrid

Az adatbzis tbbrekeszes megjelentst teszi lehetv. Egy rekesz tbb mezt is tartalmazhat.

- TDBText
- TDBEdit
- TDBMemo
- TDBImage
- TDBCheckBox
- TDBComboBox
- TDBLookUpComboBox
- DataSource: itt azt lehet megadni, hogy a megjelent eszkzk mely adatbzishoz tartoznak.
- ColCount: a tblzat oszlopainak szmt adhatjuk itt meg.
- RowCount: a tblzat sorainak szmt adhatjuk itt meg.
- AllowDelete (boolean): True esetn CTRL+Delete-tel trlhetjk a mez tartalmt.
- AllowInsert (boolean): True esetn CTRL+Insert-tel j elemet szrhatunk be.
- EditMode (boolean): True esetn az adatbzis a CtrlGrid-en keresztl is szerkeszthet.
- Orientation: azt lehet itt megadni, hogy fgglegesen vagy vzszintesen helyezkedjenek-e el.
- PanelBorder: a rcsozst adhatjuk meg itt.
- PanelCount: az egyidben ltsz rekordok szmt adja meg.
- PanelIndex: azt mutatja, hogy hnyadik panelon tallhat az aktulis rekord.
- SelectedColor: a fkuszlt panelek szne.
- ShowFocus (boolean): True esetn ltszani fog, hogy melyik az aktulis rekord.
- DoKey: esemnyek elidzse.
- gkNul: semmi,
- gkEditMode: szerkeszt zemmdba kapcsol,
- gkPriorTab: elz cellba lp,
- gkNextTab: kvetkez cellba lp,
- gkLeft: a balra lv cellba lp,
- gkRight: a jobbra lv cellba lp,
- gkUp: a fenti cellba lp,
- gkDown: a lenti cellba lp,
- gkScrollUp: egy sorral feljebb grget,
- gkScrollDown: egy sorral lejjebb grget,
- gkPageUp: egy lappal feljebb grget,
- gkPageDown: egy lappal lejjebb grget,
- gkHome: az els rekordra ugrik,
- gkEnd: az utols rekordra ugrik,
- gkInsert: j rekordot szr az aktulis rekord el, s szerkesztmdba kapcsol,
- gkAppend: j rekordot szr az utols elem utn, s szerkesztmdba kapcsol,
- gkDelete: trli az aktulis rekordot,

17
- gkCancel: szerkeszt zemmd esetn nem menti el, s kilp,
- onPaintPanel: minden cella kirajzolsa esetn ltrejv esemny. Ltrejn egy Index vltoz, amely az aktulis
cella sorszmt mutatja. Egyni rajzolshoz a Canvas-t hasznljuk.

TDBChart

Grafikon megjelentst teszi lehetv az adatbzisbl.

1. Kapcsolat megjelentse a TDataModule-ban, s a TDBChart rttele a TForm-ra.


2. Dupla klikk a TDBChart-on. Eljn egy dialgusablak.
2.1. Add gombbal hozzunk ltre egy grafikont.
2.2. Meg kell adni a grafikon tpust.
2.3. Series.
2.4. DataSet-ben a tbla nevt meg kell adni.
2.5. A Labels-ben megadott rtk meg fog jelenni minden oszlop alatt.
2.6. A Bar-ben megadott rtk lesz minden oszlop magassga.

Keress billentylets utn idztssel


Ha berok egy szvegrszletet (vagy egy karaktert) a beviteli mezben, s vrok, akkor egy id utn keresi a bert
szvegrszletet.

Timer1.Interval:=1000; //Az idzt 1 msodpercre van belltva

procedure TForm1.Edit1Change(Sender: TObject); //Ha vltozik az Edit rtke, elindtja az idztt


begin
Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);


begin
DataModule1.Table1.Locate('TERMEKNEVE',Edit1.Text,[loPartialKey]);
Timer1.Enabled:=False; //Kikapcsolja az idztt, hogy bers utn jra kezddjn a szmols
end;

Szcs Tams, 2000. prilis.

18

You might also like