Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 460
Локальные фильтры
Свойства Filter, Filtered и FilterOptions служат для установки локальных фильтров в TDataSet. Локальная фильтрация осуществляется внутри приложения. Это дает определенные преимущества для TDataSet с малым количеством строк; в этом случае вся таблица располагается в кэше BDE и обращение к серверу базы данных не требуется.
Filter позволяет вам указать выражение, которое ограничивает количество строк, видимых в TDataSet. Синтаксис, используемый в выражениях, похож на синтаксис оператора WHERE языка SQL. Поля можно сравнивать друг с другом и с постоянными величинами. В фильтрующих выражениях можно использовать следующие операторы:
Оператор | Значение |
< | Меньше |
> | Больше |
>= | Больше или равно |
<= | Меньше или равно |
= | Равно |
о | Не равно |
0 | Окружает отдельный элемент составного выражения |
[] | Окружает имена полей с пробелами |
AND, OR, NOT | Объединяет отдельные элементы составных выражений |
Вы можете также фильтровать записи, используя событие OnFilterRecord. Обработчик этого события выглядит следующим образом:
Обработчик устанавливает параметр Accept в зависимости от того, удовлетворяет ли строка заданному критерию. Обратите внимание, что TDataSet, к которому относится фильтр, также передается в качестве параметра. Заметьте, что для установки параметра Accept используется вариантное свойство Value.
С помощью методов FindFirst, FindNext, FindPrior и FindLast вы можете осуществлять поиск в TDataSet, используя выражения-фильтры. FindFirst находит первую строку, удовлетворяющую критерию фильтрации, FindNext находит следующую строку. FindPrior находит предыдущую строку, соответствующую заданному критерию, a FindLast — последнюю.
FilterOptions представляет собой набор, который может включать два возможных элемента: