Жазбаны іздеу қандай да бір анықталған шартты қанағаттандыратын жазбаға ауысуды білдіреді. Фильтрациядан айырмашылығы іздеу нәтижесінде мәліметтер жиынындағы жазбалар санының өзгермейтіндігінде. Өріс бойынша жазбаны іздеу үшін Locate және Lookup әдістері қолданылады, өрістер индекстелмеген болуы да мүмкін.
Locate (const keyFields: String; const KeyValues: Variant; Options: TLocateOptions):Boolean функциясы өрістің берілген мәнімен іздейді. Егер жазба табылса, онда функция True мәнін, ал басқа жағдайда False қайтарады. Іздеу жүргізілетін өріс тізімдері KeyFields параметрінде беріледі, өріс нүктелі үтірмен (;) бөлінеді. Variant типті KeyValues параметрі іздеу үшін өріс мәнін көрсетеді.
Options параметрі келісім бойынша символдық жолды іздеуге пайдалынады. Бұл параметр жиын типіне TLocateOptions жатады, және келесі мәндерді қабылдайды:
loPartialKey (мәндердің кейбір бөлігі сәйкес болуды білдіреді);
Бір өріс бойынша іздеуге мысал:
Table1.Locate(‘Number’, 123, []);
Іздеу Number өрісі бойынша орындалады, және бұл өрістің мәні 123 саны болатын бірінші жазба ізделінеді.
Мысал ретінде мәліметтер жиынынан іздеуді қамтамасыз ететін оқиғаны өңдеуді қарастырамыз. Форма түрі 22-суретте келтірілген.
22-сурет.Іздеу формасының мысалы
Пайдаланушы товар аты (Name) және құны (Price) өрістері бойынша іздеуді жүзеге асырады. Іздеу процесі «Іздеу» түймесін шерткен соң басталады. Төмендегі оқиғаны өңдеу модулінің мәтіні келтірілген.
procedure TForm1.Button1Click(Sender: TObject); Var Keyfields: String;
KeyValues: Variant; Options: TLocateOptions;
begin
if not (CheckBox1.Checked or CheckBox2.Checked) then begin MessageDlg('yt pflfys eckjdbt gjbcrf', mtInformation, [mbOK],0); exit;
end;
// Бір уақытта Name, Price екі өрісі бойынша іздеу
if CheckBox1.Checked and CheckBox2.Checked then begin KeyFields:='Name;Price'; KeyValues:=VararrayOf([edit1.Text,edit2.Text]);
end
// Екі өрістің біреуі бойынша іздеу
else begin
// Name өрісі бойынша іздеу
if CheckBox1.checked then begin Keyfields:='Name'; keyvalues:=edit1.Text;
end;
// Price өрісі бойынша іздеу
if CheckBox2.Checked then begin KeyFields:='Price'; KeyValues:=edit2.Text;
end; end;
// Іздеу әріптердің регистріне байланысты емес орындалады
// кейбірелері сәйкес болатын мүмкіндіктерімен іздеу
Options:=[loCaseInsensitive,loPartialKey]; 77
// Жазба табылған жоқ
if not Table1.Locate(KeyFields,KeyValues,Options) then begin Beep;
Тізбектеп іздеуді, жазба өрістері мәні мен іздеу үшін берілген мәннің ұқсас сәйкестерін іздеуге арналған FindNearest, SetNearest, EditNearest және GotoNearest әдістерінің көмегімен ұйымдастыруға болады.
Жазбаларды тізбектеп іздеу үшін, қосымша форма оқиғасын өңдеуге мысал қарастырайық.
23-сурет. Тізбектепіздеу формасына мысал
Қосымшаның форма компоненті үшін оқиғаны өңдеу программасы төменде келтірілген.
procedure TForm1.Edit1Change(Sender: TObject); Var strField: String;
begin
// егер іздеу режимі қосырмаған болса, онда процедурадан шығу
if not CheckBox1.Checked then exit;
// іздеу үшін өрісті таңдау
case RadioGroup1.ItemIndex of 0:strField:= 'Name'; 1:strField:= 'Firm'; 2:strField:= 'City';
end;
// іздеуді орындау
Table1.Locate(strField,edit1.Text,
[loCaseInsensitive,loPartialKey]); end;
procedure TForm1.CheckBox1Click(Sender: TObject); begin
edit1Change(Sender); end;
procedure TForm1.RadioGroup1Click(Sender: TObject); begin
edit1Change(Sender); end;
procedure TForm1.Button1Click(Sender: TObject); begin