СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как осуществить поиск по неиндексированному полю в 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 Сообщество Чайников
Контактная информация