русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Фильтрация по выражению


Дата добавления: 2014-04-30; просмотров: 885; Нарушение авторских прав


При использовании фильтрации по выражению набор данных ограничивается записями, удовлетворяющими выражению фильтра, задающему условия отбора записей.

Достоинством фильтрации по выражению является то, что она применима к любым полям, в том числе к неиндексированным. В связи с тем, что в процессе отбора просматриваются все записи таблицы, фильтрация по выражению эффективна при небольшом количестве записей.

Для задания выражения фильтра используется свойство Filter типа string. Фильтр представляет собой конструкцию, в состав которой могут входить сле-дующие элементы:

1. имена полей таблиц;

2. литералы;

3. операции сравнения;

4. арифметические операции;

5. логические операции;

6. круглые и квадратные скобки.

Если имя поля содержит пробелы, то его заключают в квадратные скобки, в противном случае квадратные скобки необязательны.

Литерал представляет собой значение, заданное явно, например, число, строка |или символ. Отметим, что имена переменных в выражении фильтра использо-вать нельзя. Если в фильтр требуется включить значение переменной или свой-ства какого-либо компонента, то это значение должно быть преобразовано в строковый тип.

Операции сравнения представляют собой обычные для языка Pascal отношения >> => <=> >=и о.

Арифметическими являются операции +, -, * и / (сложения, вычитания, умно-жения и деления, соответственно).

В качестве логических операций можно использовать AND, OR и NOT (логическое умножение, сложение и отрицание, соответственно).

Круглые скобки применяются для изменения порядка выполнения арифметиче ских и логических операций. Если выражение фильтра не позволяет сформировать сложный критерий фильт-рации, то в дополнение к нему можно использовать обработчик события OnFilterRecord.

Для активизации и деактивизации фильтра применяется свойство Filter типа boolean. По умолчанию это свойство имеет значение False, и фильтрация выключена. При установке свойству Filtered значения True фильтрация включается, и в набор данных отбираются записи, которые удовлетворяют фильтру, записанному в свойстве Filter. Если выражение фильтра не задано (по умолчанию), то в набор данных попадают все записи.



Параметры фильтрации задаются с помощью свойства FilterOptions типа TFilterOptions. Это свойство принадлежит к множественному типу и может принимать комбинации двух значений:

1. focaseinsensitive — регистр букв не учитывается, т. е. при задании фильтра Post = 'Водитель' слова Водитель, ВОДИТЕЛЬ или водитель будут восприняты как одинаковые. Значение focaseinsensitive рекомендуется отключать, чтобы различать слова, написанные в различных регистрах.

2. foNoPartiaicompare — выполняется проверка на полное соответствие содержимого поля и значения, заданного для поиска. Обычно применяется для строк символов. Если известны только первые символы (или символ) строки, то нужно указать их в выражении фильтра, заменив остальные символы на звездочки * и выключив значение foNoPartiaicompare. Например, при выключенном значении foNoPartiaicompare для фильтра Post = ‘в*’ будут отобраны записи, у которых в поле Post содержатся значения водитель, вод., Вод-ль ИЛИ Врач.

По умолчанию все параметры фильтра выключены, и свойство FilterOptions имеет значение [ ].

Часто удобно предоставить пользователю список готовых выражений (шаблонов) для выбора. При этом пользователь получает также возможность редактировать выбранное выражение и корректировать весь список. Такой режим реализуется, например, с помощью компонентов comboBox и Memo.

Если набор условий фильтрации ограничен и не изменяется, то пользователь может управлять отбором записей с помощью таких компонентов, как независимые (checkBox) и зависимые (RadioButton) переключатели.

В обработчике события onFilterRecord можно определять дополнительные к выражению фильтра условия фильтрации. По своему действию основные и дополнительные условия как бы соединены логической операцией AND, т. е. для отбора записи в набор данных требуется соблюдение обоих условий. В отличие от выражения фильтра, в обработчике события OnFilterRecord можно кодировать любые сколь угодно сложные проверки с помощью средств языка Object Pascal. Таким образом, набор данных Table допускает два способа задания условий фильтрации: с помощью выражения фильтра Filter и в обработчике события OnFilterRecord.

В случае набора данных Query для отбора записей можно использовать:

1. SQL-запрос;

2. обработчик события OnFilterRecord;

3. выражение фильтра.

Напомним, что для связанных таблиц на отбор записей в набор данных также влияет ограничение, налагаемое отношением "главный-подчиненный" между таблицами БД.



<== предыдущая лекция | следующая лекция ==>
Поиск по индексным полям | Фильтрация по диапазону


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.696 сек.