На этом шаге мы рассмотрим компонент TRxDBFilter
Компонент TRxDBFilter реализует заложенную в API BDE возможность наложения фильтров на курсор (набор данных), без применения запросов SQL или QBE. Преимущество фильтров в их быстродействии и отсутствии доплнительных обращений к серверу БД, что может оказаться необходимым в тех случаях, когда требуется многократно динамически изменять условия отбора записей. Кроме того, использование фильтра гарантирует, что набор данных останется редактируемым (live), если он был таким до наложения фильтра, в то время как некоторые запросы (Query) дают в результате нередактируемый набор данных.
Компонент позволяет задавать условия отбора записей как с помощью свойства Filter простой записью логических выражений в виде текстовых строк (синтаксис выражений фильтра подобен синтаксису выражений SQL), так и при помощи события OnFiltering, позволяющего вам проверить значения любых полей в записи и определить ее соответствие требуемым условиям. Фильтр может накладываться на любой набор данных, как TTable, так и TQuery или TQBEQuery, при этом наличие индексов для полей, на которые накладываются условия, не требуется. Набор данных, на который будет распространяться действие фильтра, задается свойством DataSource.
Вы можете активизировать либо снять установленный фильтр при помощи изменения значения свойства Active. Свойство Priority определяет порядок активизации нескольких фильтров при их наложении на один и тот же набор данных. Свойство LogicCond устанавливает логическую связку (И, ИЛИ) между собой нескольких условий фильтра, если условия считываются из "db-aware" элементов управления при помощи метода ReadCaptureControls.
На следующем шаге мы рассмотрим компонент TDBIndexCombo.