Поиск в непроиндексированном поле таблицыDelphi , Базы данных , ПоискПоиск в непроиндексированном поле таблицы
Оформил: 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; Привет! Я переведу текст на русский язык: Код-сниппет на Delphi, реализующий функцию Подпись функции Функция принимает три параметра:
Возвращаемое значение Функция возвращает булево значение, указывающее, было ли найдено значение или нет. Имплементация Код состоит из нескольких шагов:
Если таблица не активна или поле не существует, выходим из функции.
Если значение поля совпадает с искомым значением, устанавливаем
Альтернативное решение
Если вы ищете конкретное значение в неиндексированной таблице, может быть более эффективно использовать метод Например:
Это будет искать значение в указанном поле с помощью функциональности поиска, реализованной в компоненте базы данных. Функция Locate позволяет найти строку в непроиндексированной таблице, сравнивая значения поля с заданным значением. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |