
A mellékelt példaprogram futtatása előtt futtassa le a Run_script.cmd parancsállományt.
Amennyiben a Form1-en található ADOConnection1 objektumban megadott ConnectionString értéke nem felel meg az Ön beállításainak, úgy módosítsa azt.
Az adatok tárolásához a Files adatbázis Data tábláját használjuk, melynek rekordszerkezete a következő:
| Mezőnév |
Típus |
Hossz |
Megjegyzés |
| FileName |
varchar |
100 |
Állomány- / könyvtárnév. |
| Path |
varchar |
255 |
Elérési út. |
| Type |
varchar |
10 |
Típus. File – állomány, Directory – könyvtár. |
| Comment |
varchar |
50 |
Megjegyzés. Ebben a mezőben eltárolhatjuk, például a CD/DVD lemez nevét. |
Az SQL szerverhez egy ADOConnection objektumon keresztül kapcsolódunk.
Az állományok és könyvtárak keresését, valamint rögzítését az adatbázisban a ScanFiles metódus segítségével végezzük el.
procedure ScanFiles(Dir: String);
A metódus belsejében, a FindFirst – FindNext utasításpárost használjuk fel arra, hogy könyvtárbejegyzéseket keressünk. Kiindulási könyvtárként a Dir paraméterben megadott elérési utat használjuk fel, ami lehet egy tetszőleges könyvtár, így akár egy CD vagy DVD lemez főkönyvtára is.
A megadott elérési út első bejegyzését a FindFirst utasítással kereshetjük meg.
if FindFirst(Dir+'*.*',faAnyFile,F)=0 then begin
Az eredményül kapott TSearchRec struktúra Name tagjából olvashatjuk ki a bejegyzés nevét.
A további bejegyzéseket egy repeat – until ciklus és a FindNext utasítás felhasználásával találhatjuk meg.
Ha a CheckBox1 objektum be van jelölve és egy könyvtárbejegyzést találtunk, akkor feljegyezzük a könyvtár adatait, majd rekurzív módon ismét meghívjuk a ScanFiles metódust, ez alkalommal a talált könyvtárnévvel.
if CheckBox1.Checked and (F.Name[1]<>'.') then begin
ADOQuery2.Append;
ADOQuery2.FieldByName('FileName').AsString:=F.Name;
...
ADOQuery2.Post;
ScanFiles(Dir+F.Name);
Ha a bejegyzés egy állomány, akkor nincs más dolgunk, mint feljegyezni azt az adatbázisba.
Az alkalmazásban lehetőséget biztosítunk SQL lekérdezések használatára is. Ehhez egy Memo és egy ADOQuery komponensre van szükségünk. A Memo1 objektumba beírhatjuk a SELECT parancsot. Az ADOQuery objektummal végrehajtjuk a lekérdezést, melynek eredményét egy DBGrid-ben meg is jelenítjük.
ADOQuery1.Close;
ADOQuery1.SQL.Assign(Memo1.Lines);
ADOQuery1.Open;
Egy for ciklus segítségével méretezzük a Grid megjelenő celláit, hogy azok ne legyenek indokolatlanul szélesek.
for i:=0 to DBGrid1.Columns.Count-1 do
DBGrid1.Columns[i].Width:=200;