CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
Autó | élelmiszer | épület | Földrajz | Gazdaság | Kémia | Marketing | Matematika |
Oktatás | Orvostudomány | Pszichológia | Sport | Számítógépek | Technika |
DOCUMENTE SIMILARE |
|
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.
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);
- 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
- 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;
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;
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á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;
- 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.
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;
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.
- 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
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).
- SELECT * FROM SZLAFEJ.DBF WHERE KOD:=KODV
- DataSource propertiesben meg kell adni az adatbázis nevét.
RequestLive (boolean): ha True, akkor szerkeszthető az SQL string (a szerkeszthetőség függ magától az SQL stringtől is).
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
- 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);
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.
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.
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ó.
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.
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.
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.
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).
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.
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.
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.
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.
- 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.
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ó.
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.
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 |
Vizualizari: 1566
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved