скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Поиск в непроиндексированном поле таблицы



Оформил: DeeCo

{The following function can be added to your to your unit and called as follows:}

 Locate(Table1, Table1LName, 'Beman');

 {Table1 is your table component, Table1LName is TField you've add with the fields 
editor (double click on the table component) and 'Beman' is the name you want to find.}

 {Locate will find SValue in a non-indexed table}

 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 © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook