- •8. Типы структур ис. Их характеристики, достоиства, недостатки.
- •2 Файл серверная архитектура.
- •3. Клиент серверная архитектура.
- •4. Многозвенная архитектура.
- •9. Определение реляционной модели данных, характеристика ее основных элементов.
- •10. Основные подходы к проектированию структур данных и проблемы определения структур данных.
- •12. Основная задача проектирования бд. Метод декомпозиции- классический метод нормализации отношений.
- •14. Формирование отношений для связи 1:м при кп обязательном для м связной сущности.
- •15. Формирование отношений для связи 1:м при кп необязательном для м-связной сущности.
- •16. Формирование отношений для связи м:м.
- •17. Этапы проектирования и назначение диаграммы er-экземпляров и er-типа.
- •18. Фильтрация записей. Фильтрация по выражению.
- •19. Фильтрация записей. Фильтрация по диапазону.
- •20. Создание приложения бд в Delphi (компоненты, обеспечивающие доступ к данным, структура и работа приложения).
- •21. Схема взаимодействия компонентов при проектировании бд в Delphi.
- •Связь этих компонентов друг с другом и с базой данных можно представить схемой приведенной ниже:
- •22. Основные этапы создания приложения бд в Delphi.
- •23. Назначение компонента tDataSource в создании бд. Основные свойства и методы компонента.
- •24. Назначение компонента тТablе в создании бд. Основные свойства и методы компонента.
- •25. Приёмы работы с набором данных(нд). Состояния набора данных. Метод State.
- •26. Основные методы модифицируемого набора данных(нд). Редактирование набора данных и проблемы редактирования.
- •27. Основные методы модифицируемого набора данных. Добавление и удаление записей и проблемы удаления.
- •28. Назначение компонента tdbGrid в создании бд. Основные свойства и методы компонента.
- •29. Навигация по набору данных. Назначение компонента tdbNavigator в создании бд. Основные свойства и методы компонента.
- •30. Методы поиска записей в наборе данных. Метод Locate.
- •31. Методы поиска записей в наборе данных. Метод Lookup.
- •32. Методы поиска записей в наборе данных. Методы FindKey и FindNearest(инкрементный поиск записей).
- •33. Отображение и редактирование данных. Классификация компонентов отображения данных.
- •34. Назначение компонента tQuery- Основные свойства и методы.
- •35. Теоретические языки запросов. Sql - структурированный язык запросов. Основные методы его использования.
- •36.Основные операторы языка sql. Оператор select: назначение, формат оператора.
- •37. Предложение where в операторе select. Формирование запроса по условию поиска и внутреннее соединение таблицы.
- •38. Использование оператора select для сортировки нд и устранения повторяющихся значений.
- •39. Использование оператора select для расчета вычисляемых столбцов и группировки записей.
- •40. Использование оператора select для задания сложных условий поиска (операторы and, or, not, between).
- •41. Использование оператора select для внешнего соединения. Формат запроса.
- •42. Операторы insert, delete, update. Форматы операторов и назначение.
- •43. Ссылочная целостность таблиц бд и механизмы ее осуществления. Понятие транзакции.
- •44. Типы полей данных, поддерживаемые в Delphi и их характеристики. Объявление полей и типов полей при создании приложения.
- •46. Использование bde Administrator при создании бд.
- •47. Роль индексов в субд. Определение индексов. Связывание таблиц бд.
- •48. Работа с визуальным компонентом tdbGrid и настройка полей таблиц.
- •49. Навигация по набору данных. Использование визуального компонента tdbNavigator.
- •50. Создание поля просмотра и вычисляемого поля. Основные проблемы и пути их решения.
- •51. Разработка отчетов с помощью средства Quick Report.
- •52. Разработка отчетов с помощью средства Rave Reports.
18. Фильтрация записей. Фильтрация по выражению.
В процессе работы с данными часто возникает необходимость отбора записей, удовлетворяющих каким-либо критериям. Для этого к наборам данных применяют фильтры.
Фильтр — это набор ограничений для записей, которые будут выделены в наборе данных.
Процесс задания фильтра называется фильтрацией записей. Среда Delphi позволяет фильтровать записи либо по выражению, либо по диапазону.
По умолчанию отображаются все записи набора данных, то есть фильтр не используется.
Фильтрация по выражению ограничивает набор данных записями, которые удовлетворяют выражениям, записанным в фильтре. Этот вид фильтрации применим к любым полям, в том числе и неиндексированным.
ПРИМЕЧАНИЕ: Фильтрация по выражению эффективна в случае, когда набор данных содержит небольшое число записей, так как при фильтрации последовательно просматриваются все записи набора данных.
Для задания выражения фильтра используется свойство Filter типа Stream набора данных. В состав этого выражения могут входить:
арифметические операции, такие как сложение, вычитание, умножение и деление, обозначаемые символами +, -, * и/;
знаки логических операций: AND, OR, NOT и т. д.;
имена полей таблиц. Если внутри имени поля содержатся пробелы, его заключают в квадратные скобки, например [Tel Number];
круглые скобки для определения порядка выполнения арифметических и логических операций;
литералы, то есть явно заданные значения, например строка, символ или число;
операции сравнения, то есть обычные операции >,<,=>,<= и о.
Если при фильтрации невозможно сформировать сложные критерии фильтрации или отбора, то в дополнение к нему используется обработчик OnFilterRecord.
При работе с НБД при значении свойства Filtered=True НБД будет отфильтрован, т.е. фильтрация некоего НБД происходит при команде о необходимости фильтрации. Синтаксис фильтра схож с синтаксисом предложения WHERE SQL-запроса.WHERE <имя столбца табл.1> <оператор> <имя столбца табл.2>
Обработчик события OnFilterRecord имеет 2 параметра: имя фильтруемого НБД и переменную Accept. Если НБД будет отфильтрован, т.е. текущая запись будет удовлетворять критерию, значение параметра Accept=true.
Когда приложение обрабатывается событием OnFilterRecord НБД переводится из состояния просмотра в состояние фильтрации. Это предотвращает возможную модификацию НБД в момент фильтрации.
Для активации и деактивации используется свойство filter=true/false. По умолчанию false.
Свойство FilterOptions набора данных позволяет задавать параметры фильтрации. Значение комбинируется из двух параметров:
foCaseInsensitive — при задании фильтра не учитывать регистр букв. То есть, например, для фильтра Name = 'Иван' будут выбраны записи «Иван», «ИВАН», «иван» и другие;
foNoPartialCompare — проверять на полное соответствие значения поля фильтру. Применяется для строгого поиска. Если вы хотите осуществлять фильтрацию записей по частичному совпадению фильтра, отключите этот параметр. В таком случае можно заменить незначащие символы символом звездочки *. В результате при заданном фильтре Name = 'И*' будут выбраны все записи, имена людей в которых начинаются с буквы И.
По умолчанию оба параметра отключены.
Пример: при нажатии на кнопку Фильтровать фильтр активизируется при присваивании свойству Filtered=true. Редактор Edit1 будет использоваться для задания выражения фильтра и кнопка Все Записи будет использоваться для отключения фильтрации.
procedure TForm1.FormCreate(…);
begin
Zakazchik.FilterOption:=[foCaseInsensitive];
Zakazchik.Filtered:=false;
end;
procedure TForm1.Button1Click(…);
begin
Zakazchik.Filtered:=true;
Zakazchik.Filter:=Edit1.Text;
end;
procedure TForm1.Button2RecirdClick(…);
begin
Zakazchik.Filtered:=false;
end;
Если набор условий фильтрации ограничен и не изменяется, можно использовать компоненты для выбора условий CheckBox и RadioButton.
При работе с датами можно использовать установку дат с помощью компонента TDataTimePicker. Обработчик события OnFilterRecord вызывается для каждой записи, считываемой в НБД, поэтому его код должен быть коротким и оптимизированным для хорошей производительности фильтра.
Событие OnFilterRecord генерируется для каждой записи и при использовании методов поиска FindFirst, FindLast, FindNext.
В случае НБД Query для отбора записей можно использовать: SQL-запрос, обработчик события OnFilterRecord, выражение фильтрации.