Аралықтарды ерекшелеу Фильтрлерді қолдану өте күрделі сұрауларды қалыптастыруға мұмкіндік береді, бірақ үлкен көлемді мәліметтер жиынтықтарында фильтрлеу баяу жүреді. Сондықтан Ttable компоненті үшін мәліметтер қоры кестелерінің нақты өрістеріне шектердің мүмкін мәндерін оперативті беруге мүмкіндік беретін тәсілдер тобы ұйымдастырылған.
Ең бірінші:
Рrocedure SetRangeStart;
тәсілі шақырылады.
Ол кестені аралықтың алғашқы мәнін қабылдау жағдайына қояды. Осы тәсілден кейін алғашқы мәндерді индекстелген өрістерге меншіктеу операторлары келуі керек. Әрі қарай
Procedure SetRangeEnd;
тәсілі щақырылады.
Оның көмегімен аналогиялық әдіспен аралықтың соңғы шекарасы беріледі. Қалыптастырылған аралыққа енген жазбаларды сұрыптау келесі тәсілді шақыру арқылы іске асырылады:
Procedure ApplyRange;
Мысалы, егер Button1 батырмасын шерткенде Cost өрісінің мәндері50-ден кем емес және 100-ден артық емес болатын бүкіл жазбаларды сұрыптау керек болса, келесі кодты қолдануға болады:
DataModule2.Parts.SetRangeStart;
DataModule2.Parts.FieldByName(“Cost”).AsCurrency := 50;
DataModule2.Parts. SetRangeEnd;
DataModule2.Parts. FieldByName(“Cost”).AsCurrency := 100;
DataModule2.Parts.ApplyRange;
Кестенің аралықты қолданып жұмыс істеу режимін жою үшін
Procedure CancelRange;
тәсілі қолданылады.
Кестедегі іздеу Көлемі үлкен мәліметтер қорларында ақпаратты қажет жазбаны іздеу құралдарсыз түзету мен редакторлау өте қиын. Ең жеңілі ондай іздеуді
Function Find Key (const KeyValues: array of const): Boolean;
тәсілі арқылы орындау.
Іздеу кілті деп аталатын параметр IndexName және IndexFieldNames қасиетінде көрсетілген әр бір өріс үшін мәндер тізімін сипаттайды. Мысалы, егер мәліметтер қорының көрсеткішін Parts кестесінің PartNo өрісінің мәні 900-ге тең жазбасына жылжыту үшін келесі команданы орындау керек
DataModule2. Parts.FindKey ([900])
Осы кезде Parts кестесі PartNo өрісі бойынша индекстелуі және IndexName қасиетінде индекс ретінде сәйкес екіншілік индекстің атуының тұруы талап етіліде. FindKey тәсілі қажет жазба табылмағанда false мәнін қайтарады. Қолданушының ыңғайлылығы үшін қосымшаға келесі тәсілді қосқан артық болмайды:
Procedure FindNearest (const KeyValues: array of const);
Бұл тәсіл KeyValues параметріне нақты сәйкес келмесе де оған ең жақын болатын сәйкес қрістің мәні бар жазбаны табуға әрекеттенеді.
Мысалы, бүтін 5 санына 4 пен 6 ең жақын сандар ‘AA’ жолына - ‘AB’ жолы ең жақын және т.с.с. болады.
Іздеу кілтін, сондай-ақ, келесі тәсіл арқылы қалыптастыруға болады:
Procedure SetKey;
Сәйкес әдіс аралықыт қалыптастыруды еске түсіреді. Іздеу кілті қалыптастырылғаннан кейін керекті жазбаға
Function GotoKey: Boolean;
тәсілі арқылы өтуге болады.
Мәні бойынша ұқсас жазбаға өту
Function GotoNearest;
тәсілдің көмегімен жүзеге асырылады.
Мысалы:
DataModule2.Parts.SetKey;
DataModule2.Parts.FieldByName(‘PartNo’).AsInteger:=900;
DataModule2.Parts.GotoNearest;
Іздеу үшін, сондай-ақ, әмбебап тәсілдерді де қолдануға болады:
Function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions):Boolean;
Function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant;
Бірінші тәсіл параметр ретінде іздеу орындалатын өрістер тізімін, әрбір өрістің мәндерінің тізімін және іздеудің қосымша баптауларының жиынтығын (TlocateOptions типі) алады. Мысалы, PartNo индекстелген өрісте 900 мәнін іздеу келесі жолмен орындалуы мүмкін.
DataModule2. Parts. Locate (‘PartNo’; VarArrayOf([900]), [ ]);
Екінші тәсіл іздеу мен қоса атаулары ResultFields параметрінде көрсетілген өрістер мәндерінің массивін (Variant типті) қайтарады.
DataModule2. Parts. Lookup (‘PartNo’; VarArray[900]), ‘Cost’);