Első lépésként beállítjuk az adattáblánk paramétereit:
Table1.DatabaseName := 'DBDemos';
Table1.TableName := 'Customer.db';
Table1.Active := True;
Table1.IndexName := 'ByCompany';
Table1.First;
A Customer táblát a cégek nevei alapján index-eljük.
A tartomány kezdeti értéket a SetRangeStart, míg végértékét a SetRangeEnd függvényekkel állíthatjuk be.
with Table1 do
begin
SetRangeStart;
FieldByName('Company').AsString := Edit1.Text;
SetRangeEnd;
FieldByName('Company').AsString := Edit2.Text;
ApplyRange;
end;
A parancsok hatására az adattáblánk dsSetKey állapotba kerül, és törlődik minden, előzőleg a tartományra beállított kezdeti és végérték. A táblázat FieldByName tulajdonsága mutat az új kezdő és végértékekre a Company oszlopban.
A tartomány beállításai az ApplyRange metódus meghívása után kerülnek módosításra.
Figyeljük meg, hogy eredményként olyan adathalmazt kapunk, melynek értékei a megadott tartományon belül esnek, azonban az általunk megadott végérték már nem szerepel a tartományban. Tehát az eredményhalmaz mindig a megadott végérték előtti rekorddal zárul.
Vegyük észre azt is, hogy szűrési feltételként nem kell a pontos nevet (esetünkben a cég nevét) megadnunk, elég annak töredékét is. Minél pontosabban adjuk meg a kezdeti és végértéket, annál jobban szűkíthetjük a tartományt.
A tartomány beállításait a CancelRange metódus segítségével törölhetjük. Meghívása után eredményül a teljes adathalmazt kapjuk vissza.
Table1.CancelRange;
Table1.Refresh;
Egy már beállított tartomány kezdő- és végértékét szerkeszthetjük is az EditRangeStart illetve EditRangeEnd utasításokkal.
A módosítások szintén az ApplyRange meghívásával lépnek érvénybe.
with Table1 do
begin
EditRangeStart;
FieldByName('Company').AsString := Edit1.Text;
EditRangeEnd;
FieldByName('Company').AsString := Edit2.Text;
ApplyRange;
end;
A tartomány beállítását egyetlen utasítás segítségével is elvégezhetjük, ez pedig a SetRange.
A példaprogramban ezt így valósítottuk meg:
Table1.SetRange([Edit1.Text],[Edit2.Text]);
A SetRange egyetlen eljárásban ötvözi a SetRangeStart, SetRangeEnd és ApplyRange metódusokat.
Meghívása után az adattáblát dsSetKey módba állítja, majd törli a már előzőleg beállított kezdeti, illetve végértéket, majd ezeket módosítja az új beállításokra, végül érvénybe lépteti azokat.
Végül figyeljük meg, hogy az ApplyRange, illetve a SetRange függvények meghívása után a rekordmutató mindig a tartomány első elemére pozícionál.
A fentiekben ismertetett függvények Paradox és dBASE táblák esetében csak index-elt mezőkre működnek, míg SQL adatbázisoknál minden olyan oszlop leszűrhető, mely szerepel az IndexFieldNames tulajdonságban.