Вопрос
Как осуществить поиск по неиндексированному полю в TTable?
Ответ
{Следущая функция может быть добавлена в Ваш модуль и названа, например:}
Locate(Table1,=Table1LName,='Строка поиска');
{Table1=это ваш компонент таблицы,=Table1LName=это имя TField,=в котором будет производиться поиск и 'Строка поиска'=это то, что надо найти.}
{Locate=будет искать=SValue=в неиндексированной таблице}
function=Locate(const=oTable:=TTable;=const=oField:=TField;
const=sValue:=string):=Boolean;
var
bmPos:=TBookMark;
bFound:=Boolean;
begin
Locate=:==False;
bFound=:==False;
if=not=oTable.Active=then=Exit;
if=oTable.FieldDefs.IndexOf(oField.FieldName)=<=0=then=Exit;
bmPos=:==oTable.GetBookMark;
with=oTable=do
begin
DisableControls;
First;
while=not=EOF=do
if=oField.AsString===sValue=then
begin
Locate=:==True;
bFound=:==True;
Break;
end
else
Next;
end;
if=(not=bFound)=then oTable.GotoBookMark(bmPos);
oTable.FreeBookMark(bmPos);
oTable.EnableControls;
end;
Кирилл Краснов
Copyright 2000-2004 Сообщество Чайников
Контактная информация