Изменение параметров поиска осуществляется методом EditKey.
Поиск по произвольным ПОЛЯМ
Для поиска по произвольной выборке полей можно использовать методы
Locate И Lookup.
function Locate(const KeyFields: string;
const KeyValues: Variant;
Options: TLocateOptions): Boolean;
function Lookup(const KeyFields: string;
const KeyValues: Variant;
const ResultFields: string): Variant;
В метод Locate необходимо передать список полей, по которым будет идти поиск (параметр KeyFields, имена полей разделяются точкой с запятой), их требуемые значения (параметр KeyValues, значения разделяются запятой) и настройки поиска (параметр Options). В настройках можно задать опцию loCaseinsensitive, которая отключает проверку на регистр символов, и опцию loPartiaiKey, которая включает поиск с минимальными отличиями. В случае успеха поиска курсор набора данных устанавливается на найденной записи, а метод возвращает значение True.
Tablel.Locate('Last_Name;First_Name', VarArrayOf(['Editl.Text', ,B±Lt2.Ttext']), []);
В метод Lookup передается список полей для поиска (параметр KeyFields, имена полей разделяются точкой с запятой) и их требуемые значения (параметр KeyValues, значения разделяются запятой). В случае успешного поиска функция возвращает массив значений типа вариант для полей, названия которых содержатся в параметре ResultFields.
Tablel.Lookup('Last_Name;First_Name', VarArrayOf(['Editl.Text', 'Edit2.Text']), 'Last_Name;First_Name');
Оба эти метода автоматически используют быстрый индексный поиск в случае, если в параметре KeyFields задать поля индекса.
Фильтры
Наиболее эффективным способом отбора записей в набор данных (особенно из больших таблиц) является создание и выполнение соответствующего запроса SQL. Но что делать, если набор данных функционирует на базе табличного компонента? В этом случае на помощь приходит встроенный в набор данных механизм фильтрации данных.
Применение фильтра основано всего на двух основных свойствах и одном вспомогательном. Текст фильтра должен содержаться в свойстве Filter, а свойство Filtered включает и выключает фильтр. Параметры фильтра определяются (ЗЭСЙ"ЖЗУ1 FilterOptions.
(_Примечание ^
Компонент TQuery также может использовать фильтры. Эта возможность подчас позволяет легко и изящно решать довольно сложные проблемы, которые иначе требуют изменения текста запроса или создания нового компонента запроса.
При использовании фильтра его текст транслируется в синтаксис SQL и передается для выполнения на сервер или через соответствующий драйвер в локальную СУБД.
Фильтры можно создавать двумя способами:
□ при помощи свойства Filter создаются довольно простые фильтры, для которых достаточно предоставляемого механизмом фильтрации синтаксиса;
□ для создания более сложных фильтров с применением всех возможных средств языка программирования применяется метод-обработчик набора данных OnFüterRecord.
Фильтры можно разделить на статические и динамические.
Статические фильтры создаются во время разработки приложения и могут ИСПОЛЬЗОВаТЬ какСЮЙСТВО Filter, так И МеТОД OnFüterRecord.