Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
BulgaraCeha slovacaCroataEnglezaEstonaFinlandezaFranceza
GermanaItalianaLetonaLituanianaMaghiaraOlandezaPoloneza
SarbaSlovenaSpaniolaSuedezaTurcaUcraineana

AutóélelmiszerépületFöldrajzGazdaságKémiaMarketingMatematika
OktatásOrvostudományPszichológiaSportSzámítógépekTechnika

Delphi adatbázis-kezelése - Adatbázis tulajdonságai

számítógépek



+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Delphi adatbázis-kezelése

Adatbázis tulajdonságai

A Delphiben komponenseken keresztül végezhető relációs adatbázis-kezelés.

- FileNew Data Module (TDataModule): speciális form.



- TTable: a komponens kapcsolatot teremt a tábla és a komponens között.

- DatabaseName: adatbázis elérési útja (vagy alias).

- TableName: tábla neve.

- Active: az adatbázis aktiváltságát mutatja (boolean).

- RecNo: aktuális rekord sorszáma.

- RecordCount: összes rekord száma.

- Exclusive: a tábla kizárólagos, más program nem férhet hozzá.

- ReadOnly: a tábla csak olvasható.

- DisableControls/EnableControls: a tábla és a DBGrid kapcsolatának megszűntetése, engedélyezése.

- Fields: tömb, amely a tábla mezőit tartalmazza.

- FieldCount: a tömb elemeinek száma.

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

- TDataSource: a Table és adatbázis-kezelő komponensek közötti kapcsolatot tartja fönn.

- DataSet: a TTable neve.

- TDBGrid: táblázat megjelenítője.

- DataSource: a TDataSource komponens neve.

Adatbázis mezői

Egy mező tulajdonságai:

- Értéke: Value: érték, AsString: stringbe konvertálás, AsInteger: integerbe váltás, AsFloat: lebegőpontosba váltás, AsBoolean: logikai, AsDateTime: dátum és idő, AsCurrency: pénzformátum, AsVariant: bármilyen típust felvehet futás közben.

- IsNull (boolean): azt mutatja, hogy a mező üres-e.

- FieldName: a mező táblabeli neve.

- Name: a mező nevét mutatja (alapban táblanév és mezőnév konkatenálása).

- Alignment: a mezőérték megjelenésének igazítása.

- DisplayFormat: a mező megjelenítési formátuma (pl. 0 darab: '0 darab', darab: 'darab').

- DisplayLabel: a mező megjelenési neve.

- DisplayWidth: a mező szélessége

- MinValue, MaxValue: a mező minimális és maximális értéke.

- ReadOnly (boolean): a mező csak olvasható.

- Visible (boolean): a mező láthatóságát adja meg.

- EditMask: a mező bemeneti formátuma (pl. EditMask:=!(999)000-000;1;_ - az '1' azt jelenti, hogy a zárójelek és szóközök is tárolásra kerülnek, a '_' helyettesítő karakter, megjelenése: '(___)___ -___).

- CustomConstraint: a mező beviteli értékét határozza meg (pl. CustomConstraint:=(Nem='Férfi') or (Nem='Nő') ).

- ConstraintErrorMessage: ha a CustomConstraint jellemzőbe írt feltétel nem teljesül, hibaüzenetet ad (pl. ConstraintErrorMessage:='A személy neme csak 'Férfi' vagy 'Nő' lehet!').

- RecordSize: az aktuális rekord mérete byte-ban.

- FieldByName(mező): a mező sorszámát adja.

- FieldValues: az adott rekord mezőinek tartalmát adja.

- ClearFields: A mező összes értékének törlése.

- Dupla klikk a Table-nAdd Fields.

Pl. Label1.Caption:=DataModule1.Table1KOD.Value;

- Display Label

Pl. DataModule1.Table1DATUM.DisplayLabel:='Dátum';

- DisplayWidth: a mező kijelzésének szélessége.

- Visible: a mező láthatóságát mutatja (boolean);

- Index: mező sorszáma.

- ReadOnly: csak olvasható (boolean);

Adatbázis szűrése

- Filter: szűrési feltétel.

Pl. (KOD='0001') and (FIZMOD>'1')

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

- Filtered: szűrt (boolean).

Pl. DataModule1.Table1.Filtered:=True;

- FilterOptions: loCaseInsensitive (a kis- és nagybetűket nem különbözteti meg),

loNoPartialCompare (részszóra keres).

Pl. DataModule1.Table1.FilterOptions:= foCaseInsensitive, foNoPartialCompare

Keresés

- Locate: ha megtalálja a keresett rekordot, akkor aktuálissá teszi.

Locate (const KeyFields:string; const KeyValues:variant; Options:TLocateOptions):boolean;

KeyFields: keresendő mező neve.

- KeyValues: keresett érték.

- Options: loCaseInsitive (a kis- és nagybetűket nem különbözteti meg),

loPartialKey (részszóra keres).

Pl. DataModule2.Table1.Locate('KOD',Edit1.Text, loPartialKey

- LookUp: a keresett rekord megadott értékeit adja vissza.

LookUp (const KeyFields:string; const KeyValues:variant; const ResultFields:string:variant);

ResultFields: azoknak a mezőknek a nevei, melyeket visszatérési értékként akarunk kapni.

Pl. Label2.Caption:=DataModule2.Table2.LookUp('KOD','0007','DATUM');

Adatok szerkesztése

- Állapot lekérdezése: State

State: tábla állapota.

- dsInactive: lezárt állapot,

- dsBrowse: alapállapot,

- dsEdit: szerkesztés alatt áll,

- dsInsert: az aktuális rekord új (beszúrás alatt áll).

- Új rekord beszúrása: Append (indexelt esetén a pozíció után, egyébként a végére - a State dsInsert-re vált)

DataModule1.Table1.Append;

DataModule1.Table1KOD.Value:='0012';

- BeforeInsert: beszúrás előtti elem.

- AfterInsert: beszúrás utáni elem.

- OnNewRecord: minden beszúráskor létrejövő esemény (pl. alapérték-beállításra való).

Pl. DataModule1.Table1FIZMOD.Value:=1;

- AppendRecord(const Values: array of const): megadhatjuk a beszúrt rekord értékét .

Pl. DataModule2.Table1.AppendRecord( '0200',Date,'971211',

- Új rekord beszúrása az aktuális rekord elé: Insert (State=dsInsert)

DataModule1.Table1.Insert;

DataModule1.Table1KOD.Value:='0012';

- Aktuális rekord szerkesztése: Edit (State=dsEdit)

DataModule1.Table1.Edit;

DataModule2.Table1.SetFields(['990417',Date]); - Mező típusának és értékének beállítása.

- Adatbázis változtatásának mentése: Post

DataModule1.Table1.Post;

Hiba figyelése annak, hogy módosítható vagy szerkeszthető-e a rekord:

If DataModule2.Table1.State in dsEdit, dsInsert then DataModule2.Table1.Post;

- OnPostError: Post-hiba esetén létrejövő esemény.

- Adatbázis változtatásának visszavonása: Cancel

DataModule1.Table1.Cancel;

- Aktuális rekord törlése: Delete (nem kérdez rá)

- OnDeleteError: Delete-hiba esetén létrejövő esemény.

- DataSet: aktuális adatbázis.

- EDataBaseError: adatbázis-hiba esetén létrejövő esemény.

- Action: daFail (hibajelentés angolul),

daAbort (törlés megszüntetése hibaüzenet nélkül),

daRetry (törlés újra megpróbálása).

Pl. Table1.Delete;

Adatbázis megnyitása, lezárása

Az aktiváltság is hasoló tulajdonság - True esetén nyitott, Fasle esetén zárt (de nem megnyitott és lezárt).

- Megnyitás: Open

- BeforeOpen: megnyitás előtt létrejövő esemény.

- AfterOpen: megnyitás után létrejövő esemény.

DataModule1.Table2.Open;

- Bezárás: Close

- BeforeClose: bezárás előtt létrejövő esemény.

- AfterClose: bezárás után létrejövő esemény.

DataModule1.Table2.Open;

Pozícionálás

Ha nem alapállapotban van a tábla (State<>dsBrowse) akkor Post-ot hajtanak végre.

- Első rekordra ugrás: First

DataModule1.Table1.First;

- Utolsó rekordra ugrás: Last

DataModule1.Table1.Last;

- Előző rekordra ugrás: Prior

DataModule1.Table1.Prior;

- Követező rekordra ugrás: Next

DataModule1.Table1.Next;

- Több rekordnyi ugrás: MoveBy(elem:integer)

DataModule1.Table1.MoveBy(-5)

- BeforeScroll: léptetés előtt létrejövő esemény.

- AfterScroll: léptetés után létrejövő esemény.

- BOF (boolean): a tulajdonság azt mutatja, hogy első-e az elem.

- EOF (boolean): a tulajdonság azt mutatja, hogy utolsó-e az elem.

Pl.

Table1.First

While not Table1.EOF do begin

Table1.Edit;

Table1DATUM.Value:=Date;

Table1.Next;

end;

- Könyvjelző elhelyezése: GetBookMark

bo:= DataModule2.Table1.GetBookmark;

- Ugrás a könyvjelzőre: GotoBookMark(könyvjelző)

DataModule2.Table1.GotoBookMark(bo);

- Könyvjelző törlése: FreeBookMark(könyvjelző)

DataModule2.Table1.FreeBookMark(bo);

Két adatbázis összekapcsolása

Két adatbázist egy-egy mezőn keresztül kapcsolunk össze, a segéd adatbázistól kiindulva.

Pl.

2 adatbázisban, egy KOD-on több tétel. A KOD az azonosító mindkét adatbázisban. A 2 adatbázisban az azonosítókat végig ismételjük.

Master: Detail:

KOD KOD

00001

00001

00002

A 2 adatbázis KOD mezője indexelt legyen (IndexName). A 2 adatbázis kapcsolatát a segéd (Detail) adatbázisnál kezdeményezzük.

1. MasterSource=TDataSource (a fő adatbázis).

2. PropertyDetail Fields =KOD (az összekapcsoló mező - lehet más nevű, mint a MasterFiled).

3. MasterField: KOD (az összekapcsoló mező).

4. Add gombbal létre kell hozni a kapcsolatot.

Számított mezők (Calculated Field)

A kalkulált mező olyan mező, mely másik mezők értékéből számítható ki. Nem kell új mezőt fizikailag létrehoznunk.

- TTable menüszerkesztő ablakában (2 klikk a komponensen) jobb egérgomb, majd New Field: Type=Float (ha lebegőpontos kell), FieldType=Calculated.

- TTable EventOnCalcField: annyiszor jön létre, ahány rekordra kell kiszámítani az adott értéket, értékeket, így egy-egy eseménykor mindig az aktuális rekord értékeiből számíthatjuk ki a kívánt értékeket.

A kalkulált mező csak olvasható!

Pl.

Procedure TDataModule2.Table1CalcFields(DataSet: TDataSet);

begin

Table1RESZAR.Values:=Table1MENNYISEG.Values;

Table1AR.Value;

end;

Kapcsolt mezők (Lookup Field)

Egy mező adatait felesleges lehet állandóan ismétlődően megadni (pl. NEME='Férfi'). Hatékonyabb, ha kódot rendelünk hozzá, hiszen így kisebb az adatbázis. Ehhez az aktuális táblát össze kell kapcsolni a másik (kereső)táblával egy-egy összekapcsoló mezőn keresztül, és a keresőtábla kívánt mezőjéből átvesszük az értékét.

- Új mező létrehozása: TTableNew FieldType=LookUp, KeyFields: az alaptábla összekapcsoló mezője, Dataset: a keresőtábla neve, LookUp Keys: a keresőtábla összekapcsoló mezője, Result Field: a keresőtáblának ebből a mezőjéből vesszük át az eredményt.

- A mező láthatóságának letiltása:

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

Mezők értékének korlátozása

- TTable Constrains property-re kattintva előjön a segédablak, ahol feltételeket adhatunk (Add).

- CustomConstraint: szöveges feltételadás (lásd a II. alcím alatt).

- DisableConstraints/EnableConstraints: korlátozás átmeneti tiltása/engedélyezése.

Rekord végleges törlése: DbiPackTable, dBase-nél: Pack

A Delete nem fizikailag törli a rekordot, valójában csak törlésre jelöli ki.

- DbiPackTable;

E művelet előtt az adatbázist kizárólagossá kell tenni (ilyenkor nem férhet hozzá más program): TTable.Exclusive:=True;

- A törölt rekordok megjelenítése:

- DbiSetProp;

- iPropValue (boolean): a törölt elemek láthatósága.

- Refresh: elemek láthatóságának frissítése.

Adatbázis létrehozása és törlése

- Adatbázis törlése: DeleteTable;

Pl.

With DataModule2.Table1 do

begin

Close;

EmptyTable; //rekordok törlése

Open;

end;

- Adatbázis létrehozása: CreateTable;

Előtte:

- A táblázat adatait megadjuk.

- FieldDefs propertiesben definiáljuk a mezőket (a FieldDefs properties TFiledDef típusú).

- 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ő létrehozása:

Add(Name;DataType; Size; Required);

- Name: az új mező neve.

- DataType: az új mező típusa.

- Size: az új mező mérete (nem kötelező minden esetben megadni).

- Required: maradhat-e üresen.

- Clear: az összes felvett elem törlése.

- Count: az aktuálisan megadott mezők száma.

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 típusú elemeket tároló tömb, melyben pl. a mezők neveit tárolhatunk (.Name esetén) - 0..n-1.

Az Items-ben a Find-del kereshetünk.

Pl.

With Table1.FieldDefs do

begin

With Find('MEZO') do

begin

DataType:=ftString;

end;

end;

IndexOf(Name): azt mutatja, hogy a Name hányadik elem az indexben.

Rekordok törlése Master-Detail kapcsolatban

1. A segédtábla törlése rekordonként (a kapcsolt rekordok látszanak).

2. A főtábla törlése.

Pl.

While not Table2.EOF do

Table2.Delete;

Table1.Delete;

TDataSource

Az Table és a DBGrid közötti kapcsolatot tarja fenn.

- State (állapot):

- doInactive: inaktív,

- doBrowse: megjelenítés alatt,

- doEdit: szerkesztés alatt,

- doInsert: új elem beszúrása történik,

- SetKey: keresés vagy nszűrés alatt,

- doCalcFields: kalkulált mező kiszámítása történik

- doFilter: szűrés alatt.

- Események (Events):

- onStateChange: az állapot megváltozott,

- onDataChange: az adatbázis tartalma megváltozott,

- onUpdateData: Post esemény létrejött,

- AutoEdit (boolean):

Ha True, akkor bármikor változtatható, ha False, akkor csak az Esit parancs kiadása után.

TQuery

A lekérdezés nem szűrhető filterrel.

- DataBaseName=az adatbázis helyének elérési útja, vagy aliase.

- SQL: SQL-ben leírt szöveges feltétel (TString típusú).

Pl. SELECT * FROM SZLAFEJ.DBF WHERE SZAM>80

- Active (boolean): ha True, ekkor elvégzi a lekérdezést, ha False, akkor nem történik lekérdezés.

SQL (Structural Query Language - struktúrált lekérdező nyelv) SELECT utasítása

- SELECT mező1, mező2 FORM adatbázis - a mező1 és a mező2 mező kiválasztása az adatbázisból

SELECT * FROM adatbázis - az összes mező kiválasztása az adatbázisból

- WHERE - feltétel

Pl. SELECT * FROM SZLAFEJ.DBF WHERE FIZMOD>'1' (csak 1-nél nagyobb fizmodu rekordok jelennek meg)

- AND, OR - több feltétel

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

- NOT - nem

- IN - egy megadott halmazban lévő elemekkel hasonlít össze

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

- LIKE - töredék keresése

- '%': akárhány tetszőleges karakter,

- '_': egy tetszőleges karakter,

- '': vezérlő karakter megadása előtti jelző

Pl. SELECT * FROM SZLAFEJ.DBF WHERE NEV LIKE 'al%%' (az 'al%' stringrészlet keresése)

- BETWEEN - két értékhatár ellenőrzése (a két értéket is beleszámítja)

Pl SELECT * FROM PROBA.DBF WHERE MEZO BETWEEN 50 and 200 (azokat a rekordokat jeleníti meg, amelyek 49 és 201 közötti értéket vesznek fel)

- konstans string konkatenálása mezőstringgel

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

- DISTINCT - azonos elemek közül csak egy elem kiválasztására szolgál

Pl. SELECT DISTINCT TERMEK FROM SZAMLA.DBF

- ORDER BY - rendezés

- ASC/DESC - növekvő/csökkenő sorba való rendezés

Pl. SELECT * FROM SZLAFEJ.DBF WHERE FIZMOD='1' ORDER BY DATUM DESC (DATUM szerint rendezi az adatbázist)

- AVG(mező) - a mező rekordonkénti átlagát adja meg

Pl. SELECT AVG(MENNYISEG) FROM SZLATET.DBF

- COUNT - annak a számát adja meg, ahány rekord megfelel a feltételnek

- SUM - a mező rekordonkénti összegét adja meg

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

- MIN/MAX - a mező legkisebbikét/legnagyobbikát adja meg

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

- GROUP BY - csoportja a megadott mezőt

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

- HAVING - szűrés

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

- Két adatbázis összehasonlítása: (két SELECT parancs kell, és először a 2. SELECT halytódik végre)

Pl. SELECT * FROM OSZTALY WHERE OATLAG<>(SELECT AVG(OSZTALYZAT) FROM TANULO

Lekérdezések paraméterezése

Egy lekérdezésnél néha nem kell magát az SQL SELECT utasítást változtatni, elég egy konstanst.

:változó

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

- Params n : n. paraméterváltozó típusa

Pl.

With DataModule1.Query1 do

begin

Close;

Params .AsInteger:=145;

Open;

end;

- ParamByName(const String): paraméterváltozó neve

Pl.

With DataModule1.Query1 do

begin

Close;

ParamByName('K').Value:=Edit1.Text;

Open;

end;

- A TQuery-t Open-nel nyitjuk és Close-zal zárjuk.

- Prepare: optimalizálhatjuk vele a lekérdezés futását (a Delphi autómatikusan teszi).

Paraméterezett lekérdezések automatizálása

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

- DataSource propertiesben meg kell adni az adatbázis nevét.

SQL utasítás szerkeszthetősége

RequestLive (boolean): ha True, akkor szerkeszthető az SQL string (a szerkeszthetőség függ magától az SQL stringtől is).

TBachMovie: több adatbázis lemásolása

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 adatbázis neve.

4. TableName: a tábla neve.

5. Mode: mód

(Indexeltek legyenek az adatbázisok.)

- batAppend: a forrásadatbázis összes rekordja hozzáfűződik a céladatbázishoz.

- vatUpdate: a forrásadatbázis egyező mezőit átírja a más értékeket tartalmazó céladatbázisba.

- batCopy: akár nemlétező cél adatbázisba írja a forrásadatbázist.

- batDelete: a céladatbázisban törlődnek azok a rekordok, amelyek egyeznek a forrásadatbázis rekordjaival.

6. Execute: végrehajtás
- Programfutás alatt:

Pl.

With BatchMove1 do

begin

Source:=Query1;

Destination:=Table1;

Mode:=batCopy;

Execute;

end;

- Fejlesztési időben: Jobb egérgomb a TBatchMove-nExecute.

Egyéb lehetőségek:

- ChangedTableName: itt állománynevet adhatunk meg, amely néven létrehoz egy Paradox adatbázist (Execute utasítás esetén), amelybe a változtatott rekordok kerülnek.

- ProblemTableName: az itt megadott állománynéven létrejön egy Paradox adatbázis, amelybe a hibás rekordok kerülnek.

- KeyViolTableName: az itt megadott állománynével létrejön egy Paradox tábla, amelybe a forrásadatbázisból  a rekordok bekerülnek.

- AbortOnProblem: (boolean): ha True, akkor az első hibás rekord másolása után a folyamat megszakad.

- AbortOnKeyViol: ha True, akkor az első rekord másolása után kilép.

- MovedCount: azt mutatja, hogy hány rekord került módosításra vagy másolásra a céladatbázisban.

- ChangedCount: azt mutatja, hogy a ChangedTableName-ben megadott adatbázisba hány rekord került.

- ProblemCount: azt mutatja, hogy hány hibás rekord van.

- KeyViolCount: megadja a hibás rekordok számát.

- CommitCount: azt mutatja, hány rekord került át sikeresen az új táblába.

- RecordCount: itt korlátozhatjuk, hogy maximum mennyi rekord kerülhet a forrásadatbázisból a céladatbázisba. 0 esetén nincs korlátozás.

- Mappings: jó, ha a forrás- és céladatbázis mezőnevei nem azonosak. Itt megadhatjuk, hogy a forrás- és céladatbázis mely mezőit tekintse azonosnak.

Pl. VAROS=V1, NEV=ALKALMAZOTT

TUpdateSQL

- DeleteSQL: SQL törlése.

- Insert SQL: SQL beszúrása.

- Modify SQL: SQL módosítása.

- TUpdate Kind: ukModify, ukInsert, ukDelete (módosított, beszúrt, törölt).

- SQL: az SQL string tömbön keresztül is elérhető.

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

- Query: TQuery elemeit tartalmazóü tömb

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

- Utasítás futtatása:

ExecSQL(UpdateKind: TUpdateKind);

TDBGrid

Az adatbázis táblázatos megjelenítésére szolgál. 1. elem: 0, utolsó elem: Count-1.

1. DataSource-szel kapcsolni kell a Table-höz.

Tulajdonságok:

- Columns: fejléc (oszlopok címkéje - mezők) beállítása.

Új fejléc hozzáadása: DBGrid.Colums.Add;

- FieldName: a DataSource-szel kapcsolódó tábla egy mezője.

- Title: a megjelenő fejléc formázása és szövege.

- Items: a TColumn típusú tömb elemei ezen keresztül érhetőek el.

- Count: azt mutatja, hogy hány oszlop van.

Pl.

For i:=0 to DBGrid1.Columns.Count-1 do

begin

DBGrid1.Columns.Items[i].Color:=clRed;

end;

- Clear: elem törlése (az adatbázisból is törli - nem fizikailag).

- FieldName: mezők nevei.

Pl.

DBGrid.Columns.Add.FieldName:='Datum';

DBGrid.Columns.Items .FieldName:=Fizmod';

- Field: az adatbázis adott mezőjét érhetjük el vele.

Pl. Label1.Caption:=DBGrid.Columns.Items .Field.AsString;

- Color: a táblázat adott oszlopának a háttérszíne.

Pl. DBGrid1.Columns.Items .Color:=clRed;

- Font: a táblázat adott oszlopának a betűtípusa.

- Style: stílus,

- Color: karakterszín.

Pl. Font.Style:= fsBold

- Alignment: szöveg igazítása.

- taLeftJustify: balra igazítás,

- taRightJustify: jobbra igazítás,

- taCenterJustify: középre igazítás.

- PopupMenu: legördülő menüt rendelhetünk egy oszlophoz (futás közben jobb egérgombbazl érhetjük el).

- ReadOnly: a kiválasztott oszlop csak olvasható.

- ButtonStyle: itt megadhatjuk, hogy mi történjen, ha a megadott oszlopba lépünk.

- cbsName: alapértelmezett neve,

- cbsEllipsis: egy nyomógomb jelenik meg, amelyben egy onEditButtonClick esemény keletkezik.

- cbsAuto: oszlopba lépéskor ComboBox jön létre, ahonnan adatokat juttathatunk a cellába. PickList-ben írhatjuk le, mit tartalmazzon a ComboBox. A DropDownRows-ban megadhatjuk, hogy egyszerre hány elem látszódjon a ComboBox-ban.

- Width: itt az oszlop szélességét korlátozhatjuk.

Pl. DBGrid1.Columns.Items .Width:=20;

- Title: fejléc szövege.

- Caption: a fejléc megjelenési neve,

- Align: szöveg igazítása,

- Color: háttér színe,

- Font: betűtípus.

Pl.

DBGrid1.Columns.Items .Title.Caption:='Dátum';

DBGrid1.Columns.Items .Title.Color:=clRed;

- FieldCount: a mezők száma.

- SelectField: aktuális mező

- SelectedIndex: az aktuális oszlop sorszáma.

Pl. Label1.Caption:=DBGrid1.SelectedField.AsString;

- TitleFont: fejléc betűtípusa (az összes oszlop fejlécére érvényes).

Pl. DBGrid2.TitleFont:=FontDialog1.Font;

- EditorMode: azt mutatja, hogy szerkesztés alatt áll-e a grid.

- Option: beállítások (boolean típusú elemek)

- dgEditing: ha True, akkor a gridben is szerkeszthetjük az adatokat,

- dgAlwaysShowEditor: True esetén automatikusan szerkeszthető a mező, False esetén Enter-re vagy F2-re,

- dgTitles: ha True, a fejléc látható,

- dgIndicator: True esetén a grid széli indikátor látható,

- dgColumnResize: ha True, az oszlopok mérete változtatható,

- dgColLines: True esetén az oszlopelválasztó vonal látható,

- dgRowLines: True esetén a sorelválasztó vonal látható,

- dgTabs: ha True, akkor a gridben érvényes a TAB és a SHIFT TAB,

- dgConfirmDelete: True esetén a CTRL DELETE-tel törölhető az aktuális sor,

- dgMultiSelect: ha True, akkor a CTRL+nyilakkal (részenként) vagy a SHIFT+nyilakkal (egységként) több elem is kijelölhető,

Események:

- onTitleClick: oszlop fejlécére való kattintás eseménye. TColumn változó jön létre, amely az aktuális oszlop számát adja meg.

Pl.

Label1.Caption:=Column.Title.Caption;

Column.Title.Color:=clRed;

- onColEnter: ez az esemény akkor jön létre, amikor egy oszlopra lépünk.

- onColExit: akkor jön létre ez az esemény, ha egy oszlopról kilépünk.

Pl. Label1.Caption:='Ez a táblázat' IntToStr (DBGrid1.SelectedIndex) '.oszlopa';

- onCellClick: cellán való kattintás eseménye. Létrejön egy TColumn változó, amely az aktuális oszlop számát adja meg.

- onColumnMoved: akkor jön létre ez az esemény, ha egy oszlopot áthelyezünk. Létrejön egy FromIndex és egy ToIndex változó, melyek azt mutatják, hogy hányadik oszlop hányadik oszlop helyére kerül.

TDBNavigator

Adatbázis-mozgató gombsor.

1. Létre kell hozni a kapcsolatot a DataSource-ön keresztül.

TNavigateBtn típusú konstansok:

- nbFirst: első rekordra ugrik (TTable.First).

- nbPrior: egyel visszalép (TTable.Prior).

- nbNext: következő rekordra lép (TTable.Next).

- nbLast: utolsó rekordra ugrik (TTable.Last).

- nbInsert: új rekordot szúr be.

- nbDelete: aktuális rekordot törli.

- nbEdit: szerkesztőmódba lép.

- nbPost: elmenti a változtatásokat.

- nbCancel: érvényteleníti a változtatásokat.

- nbRefresh: újraolvassa az adatokat (ha másképpen is megváltozhatott az adatbázis).

További lehetőségek:

- VisibleButton: azt mutatja, melyik gombok látszódnak.

- Hint: az egész komponens magarázószövege.

- Hints: nyomógombok magyarázószövege (sorrendben egy-egy sor egy-egy nyomógombhoz tartozik).

- ConfirmDelete: megerősítéskérést végez a törléshez (angolul).

- BtnClick(TNavigateBtn): valamely gomb megnyomásának szimulálása.

Pl. DBNavigator1.BtnClick(nbFirst);

- Flat: True esetén a nyomógomb körvonala csak akkor látszódik, ha fölötte állunk az egérrel, és nincs letiltva.

- BeforeAction: ez az esemény akkor jön létre, ha lenyomtunk egy gombot, de még nem hajtódott végre a parancs. Kapunk egy TNavigateBtn típusú Button változót, amely azt mutatja, hogy melyik gombot nyomtuk meg.

Pl.

If Button=nbDelete then

begin

If MessageDlg('Törlés megerősítése', mtConfirmation, mbOkCancel, 0)<>mrOk then Abort;

- onClick: nyomógomb lenyomása, és a parancs végrehajtása utáni esemény. Button változót kapunk, amely megadja, hogy melyik gomb lett lenyomva.

TDBText

Az aktuális mező megjelenítése szolgál.

- DataSource: adatbázis.

- DataField: mező.

- Field: program futása alatt a mezőt ezzel érhetjük el.

Pl.

DBText1.DataSource1.DataSet.Edit;

DBText1.Field.Value:=Date;

- AutoSize (boolean): Tue esetén a komponens szélessége automatikusan változik.

- Transparent (boolean): True esetén a DBText mögött elhelyezkedő komponens is látható.

TDBEdit

Az aktuális mezőt megjeleníthetjük és szerkeszthetjük a beviteli mezőben. A komponensbe írt stringre (vagy konvertált értékre) változtatja a mezőt, ha a tábla módosítható.

- DataSource: adatbázis.

- DataField: mező.

- CharCase: a beírt szöveg megjelenési módja.

- ecLowerCase: minden betűt kisbetűre vált,

- ecNormal: alap,

- ecUpperCase: minden betűt nagybetűre vált.

- ReadOnly (boolean): True esetén csak olvasható.

- PasswordChar: ha nem #0, akkor az ide beírt karakter fog megjelenni begépelés közben (pl. *). Az adatbázisban az eredeti adat fog megjelenni.

- MaxLength: a beviteli mező maximum hosszát adja (ha nem 0).

- AutoSelect (boolean): ha True, akkor a komponensre fókuszálás után automatikusan kijelöli a benne foglalt teljes stringet.

- Modified (boolean): azt mutatja, hogy megváltozott-e a szöveg tartalma.

Pl. If Edit1.Modified then

- SelText: a kijelölt szöveget tárolja el.

- SelStart: a kijelölés első karaktere,

- SelLength: a kijelölt string hossza.

- Text: a DBEdit-et Text stringgel változtathatjuk meg és kérhetjük le.

- Field: egy mezőt érhetünk el vele

Pl. DBEdit.Field.AsString:='Hahó!';

- Clear: törli a komponens tartalmát.

- SelectAll: kijelöli a teljes szöveget.

- ClerSelection: a kijelölt szövegrészt törli.

- CopyToClipboard: a vágólapra másolja a kijelölt szöveget.

- CutToClipboard: kivágja a vágólapra a kijelölt szöveget.

- PasteFromClipboard: a vágólapra másolt szöveget beilleszti a megadott komponensbe.

- onChange: létrejön ez az esemény, ha a DBEdit tartalma megváltozik.

TDBMemo

Többsoros beviteli mező.

- DataSource: adatbázis.

- DataField: mező (az adatbázis mezője Memo típusú legyen!).

- Field: egy mezőt érhetünk el vele.

DBMemo1.Field.DisplayLabel:=’Ez egy mező’;

- AutoDisplay (boolean): ha True, akkor automatikusan megjelenik a DBMemo tartalma, amikor az adatbázisban lépkdünk.

- ReadOnly (boolean): ha True, akkor csak olvasható.

- AlignMent: szöveg igazítása.

- taLeftJustify: balra igazítás,

- taCenter: középre igazítás,

- taRightJustify: jobbra igazítás,

- MaxLength: a maximálisan megadható karakterek számát adja meg.

- ScrollBars: görgetősávok.

- ssNone: nincs,

- ssHorizontal: vízszintes,

- ssVertical: függőleges,

- ssBoth: vízszintes és függőleges.

- WantTabs (boolean): True esetén a TAB lenyomását a DBMemo-n belül érzékeli.

- WordWarp (boolean): True esetén a sor végén lemaradt szövegrész átkerül a következő sorba, False esetén az egész szó.

- Lines: a DBMemo sorai.

- Add(string): sor hozzáadása.

- Modified (boolean):a szöveg megváltozottságát jelzi.

- LoadMemo: egy file tartalmával tölti fel a DBMemo-t.

- SelectAll: kijelöli a teljes szöveget a komponensen belül.

- Clear: törli a DBMemo tartalmát.

- ClearSelection: a kijelölt szöveget törli.

- CopyToClipboard/CutToClipboard/PasteFromClipboard: vágólap használata.

TDBImage

Az adatbázisban lévő képeket jeleníti meg.

- DataSource: adatbázis.

- DataField: mező (az adatbázis mezője dBase esetén binary, egyéb esetén egyéb képformátumú legyen!).

Az adatbázismezőbe új képet beilleszteni, illetve onnan képet kimásolni a vágólapon keresztül lehet (CTRL+C, CTRL+X, CTRL+V).

- Field: egy mezőt érhetünk el vele.

- AutoDisplay (boolean): True esetén mindig megjeleníti az aktuális rekord DBImage-ét, False esetén a LoadImage eljárással kell betöltenünk.

- Stretch (boolean): ha True, a kép méretét a komponens méretéhez igazítja (nyújtja).

- QuickDraw (boolean): True esetén nem használ speciális palettát a kép kirajzolásához, hanem csak 256 színt. (Alapesetben True.)

- BorderStyle: itt azt lehet beállítani, legyen-e keret.

- bsNone: nincs keret,

- bsSingle: van keret.

- Picture: közvetlenül elérhetjük vele a képet.

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 tartalmával tölti fel a DBImage-et.

- CopyToClipboard/CutToClipboard/PasteFromClipboard: vágólap használata.

TDBListBox

Adatbázishoz igazodó listadoboz. A listadobozban kiválasztott elem kerül a rekordmezőbe. Ha a rekord kiválasztott eleme megegyezik a listadoboz egyik elemével, akkor az az elem a listadobozban is ki lesz választva.

- DataSource: adatbázis.

- DataField: mező.

- Field: egy mezőt érhetünk el vele.

- Items: a listadoboz elemei, a rekord mezői a listadobozban.

- Add(elemnév): új elem hozzáadása.

- ReadOnly (boolean): ha True, akkor csak olvasható.

- onDrawItem: olyan esemény, amely akkor jön létre, ha kirajzol egy listaelemet.

- Style: stílus.

- lbStandard: alap,

- lbOwnerDrawFixed: állandó méretű elemek,

- lbOwnerVariable: változó méretű elemek.

- ItemHeight: az egyes elemek magassága (Style=lbStandard esetén nem kell változtatnunk).

- IntegralVariable: a listadoboz szélessége a listaelemek egészszámú megjelenéséhez igazodik.

- ItemIndex: a kiválasztott elem sorszámát adja meg (0-tól Count-1-ig), ha értéke –1, akkor nincs kiválasztott elem.

- Selected (boolean tömb): minden egyes elem kiválasztottságát mutatja (True esetén a megadott elem kiválasztott).

TDBComboBox

Adatbázishoz igazodó ComboBox. A listából kiválasztott elem kerül a mezőbe. Ha megváltozik az aktuális rekord, akkor komponens tartalma is megváltozik arra az értékre, amelyet az adatbázis tartalmaz. Ha az adatbázisban olyan érték van, amely nem szerepel a ComboBox-ban, akkor semmi sem jelenik meg komponensben. Ha egy másik elemet választunk ki, akkor az adatbázis automatikusan szerkeszthető üzemmódba kerül.

- DataSource: adatbázis.

- DataField: mező.

- Field: egy mezőt érhetünk el vele.

- Items: a listadoboz elemei, a rekord mezői a listadobozban.

- ReadOnly (boolean): ha True, akkor csak olvasható.

- ItemIndex: a kiválasztott elem sorszámát adja meg (0-tól Count-1-ig), ha értéke –1, akkor nincs kiválasztott elem.

- Sorted (boolean): True esetén rendezett a lista.

TDBCheckBox

Adatbázishoz igazodó, két- vagy háromelemű doboz (logikai típusú értékekhez ajánlják).

- DataSource: adatbázis.

- DataField: mező.

- Field: egy mezőt érhetünk el vele.

DBCheckBox1.Field.DisplayValues:=’igaz; hamis’;

- ReadOnly (boolean): ha True, akkor csak olvasható.

- AllowGrayed (boolean): True esetén háromértékű (iksz/szürke iksz/üres), False esetén kétértékű.

- Checked: elemek kiválasztottságát mutatja.

- State: háromelemű esetén az állása.

- cbUnchecked: nem kiválasztott,

- cbChecked: kiválasztott,

- cbGrayed: harmadik érték (szürkített).

- ValueChecked: itt lehet megadni, hogy milyen szöveges érték feleljen meg az igaz értéknek (pontosvesszővel több értéket is megadhatunk).

Pl. CheckBox1.ValueChecked:=’igaz;i’;

- ValueUnchecked: a hamis érték szöveges megfelelője.

TDBRadioGroup

Erre a komponensre akkor lehet szükség, ha véges számú elem közül csak egyet kell mkiválasztani.

- DataSourcs: adatbázis.

- DataField: mező.

- ReadOnly (boolean): a komponens csak olvasható.

- Items: a komponens elemei.

- Columns: a megjelenítő oszlopok száma.

- Values: az értékek soronkénti hozzárendelése az elemekhez.

- Caption: a fejléc szövege.

- ItemIndex: megmutatja, hogy hányadik az aktuális elem (0-tól kezdődik a számolás).

- CanModify (boolean): True esetén az adott mező értékét megváltoztathatjuk.

TDBLookUpListBox

A lista elemeit nem mi adjuk meg, hanem egy másik adatbázis szolgáltatja.

- DataSource: a főadatbázis, ahová az elemek kerülnek.

- DataField: a főadatbázis azon mezője, ahová a ListaSource-ben és a KeyField-ben megadott mező tartalma kerül.

- ListSource: a segédadatbázis, ahol a lista elemeit tároljuk.

- ListField: a lista elemeit tároló segédadatbázis mezője (több mezőt is megadhatunk ­’­;’-vel - több oszlopban jelenik meg).

Pl.

With DBLookUpListBox1 do

begin

ListField:=’NEV;CÍM;TELEFON’;

end;

- KeyField: a segédadatbázisban ennek a mezőnek az értéke kerül be a főadatbázisba.

Pl.

With DBLookUpListBox1 do

begin

ListSource:=DataSource2;

ListField:=’NEV’;

KeyField:=’KOD’;

DataSource:=DataSource1;

DataField:=’VEVOKOD’;

end;

- Field: a főadatbázis egy mezője.

- ListFieldIndex: több mező megadása esetén a mező száma (0-tól).

Pl. ListField:=’NEV;CÍM;TELEFON’;

Ha a ListFieldIndex=1, akkor a CÍM mező alapján keresi a beírt értéket.

- KeyValue: a KeyField-ben megadott mező értéke.

Pl. Label1.Caption:=DBLookUpListBox1.KeyValue;

- SelectedItems: az aktuálisan kiválasztott elem szövege.

- RowCount: az ablak sorainak száma.

TDBLookUpComboBox

- DataSource: a főadatbázis, ahová az elemek kerülnek.

- DataField: a főadatbázis azon mezője, ahová a ListaSource-ben és a KeyField-ben megadott mező tartalma kerül.

- ListSource: a segédadatbázis, ahol a lista elemeit tároljuk.

- ListField: a lista elemeit tároló segédadatbázis mezője (több mezőt is megadhatunk ­’­;’-vel - több oszlopban jelenik meg).

- KeyField: a segédadatbázisban ennek a mezőnek az értéke kerül be a főadatbázisba.

- Field: a főadatbázis egy mezője.

- ListFieldIndex: több mező megadása esetén a mező száma (0-tól).

- KeyValue: a KeyField-ben megadott mező értéke.

Pl. Label1.Caption:=DBLookUpListBox1.KeyValue;

- DropDownAlign: az elemek igazítása.

- daLeft: balra igazítás,

- daRight: jobbra igazítás,

- daCenter: középre igazítás.
- DropDownRows: a lista megjelenő elemeinek száma.

- DropDownWidth: a lista szélessége.

- ListVisible (boolean): True esetén a lista látható.

- Text: az aktuálisan szerkesztett mező tartalma.

TDBRichEdit

Adatbázisban tárolt Rtf file-ok megjelenítésére szolgál.

- DataSource: adatbázis.

- DataField: adatbázis mezője.

- Field: a mező elérése.

- ReadOnly (boolean): csak olvasható.

TDBCtrlGrid

Az adatbázis többrekeszes megjelenítését teszi lehetővé. Egy rekesz több mezőt is tartalmazhat.

- TDBText

- TDBEdit

- TDBMemo

- TDBImage

- TDBCheckBox

- TDBComboBox

- TDBLookUpComboBox

- DataSource: itt azt lehet megadni, hogy a megjelenítő eszközök mely adatbázishoz tartoznak.

- ColCount: a táblázat oszlopainak számát adhatjuk itt meg.

- RowCount: a táblázat sorainak számát adhatjuk itt meg.

- AllowDelete (boolean): True esetén CTRL Delete-tel törölhetjük a mező tartalmát.

- AllowInsert (boolean): True esetén CTRL Insert-tel új elemet szúrhatunk be.

- EditMode (boolean): True esetén az adatbázis a CtrlGrid-en keresztül is szerkeszthető.

- Orientation: azt lehet itt megadni, hogy függőlegesen vagy vízszintesen helyezkedjenek-e el.

- PanelBorder: a rácsozást adhatjuk meg itt.

- PanelCount: az egyidőben látszó rekordok számát adja meg.

- PanelIndex: azt mutatja, hogy hányadik panelon található az aktuális rekord.

- SelectedColor: a fókuszált panelek színe.

- ShowFocus (boolean): True esetén látszani fog, hogy melyik az aktuális rekord.

- DoKey: események előidézése.

- gkNul: semmi,

- gkEditMode: szerkesztő üzemmódba kapcsol,

- gkPriorTab: előző cellába lép,

- gkNextTab: következő cellába lép,

- gkLeft: a balra lévő cellába lép,

- gkRight: a jobbra lévő cellába lép,

- gkUp: a fenti cellába lép,

- gkDown: a lenti cellába lép,

- gkScrollUp: egy sorral feljebb görget,

- gkScrollDown: egy sorral lejjebb görget,

- gkPageUp: egy lappal feljebb görget,

- gkPageDown: egy lappal lejjebb görget,

- gkHome: az első rekordra ugrik,

- gkEnd: az utolsó rekordra ugrik,

- gkInsert: új rekordot szúr az aktuális rekord elé, és szerkesztőmódba kapcsol,

- gkAppend: új rekordot szúr az utolsó elem után, és szerkesztőmódba kapcsol,

- gkDelete: törli az aktuális rekordot,

- gkCancel: szerkesztő üzemmód esetén nem menti el, és kilép,

- onPaintPanel: minden cella kirajzolása esetén létrejövő esemény. Létrejön egy Index változó, amely az aktuális cella sorszámát mutatja. Egyéni rajzoláshoz a Canvas-t használjuk.

TDBChart

Grafikon megjelenítését teszi lehetővé az adatbázisból.

1. Kapcsolat megjelenítése a TDataModule-ban, és a TDBChart rátétele a TForm-ra.

2. Dupla klikk a TDBChart-on. Előjön egy dialógusablak.

2.1. Add gombbal hozzunk létre egy grafikont.

2.2. Meg kell adni a grafikon típusát.

2.3. Series.

2.4. DataSet-ben a tábla nevét meg kell adni.

2.5. A Labels-ben megadott érték meg fog jelenni minden oszlop alatt.

2.6. A Bar-ben megadott érték lesz minden oszlop magassága.

Keresés billentyűleütés után időzítéssel

Ha beírok egy szövegrészletet (vagy egy karaktert) a beviteli mezőben, és várok, akkor egy idő után keresi a beírt szövegrészletet.

Timer1.Interval:=1000; //Az időzítő 1 másodpercre van beállítva

procedure TForm1.Edit1Change(Sender: TObject); //Ha változik az Edit értéke, elindítja az időzítőt

begin

Timer1.Enabled:=True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

DataModule1.Table1.Locate('TERMEKNEVE',Edit1.Text, loPartialKey

Timer1.Enabled:=False; //Kikapcsolja az időzítőt, hogy beírás után újra kezdődjön a számolás

end;

Szűcs Tamás, 2000. április.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1487
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved