- •Організація баз даних і знань
- •7.080401 "Інформаційні управляючі системи і технології " і
- •7.080402 "Інформаційні технології проектування"
- •Загальні зауваження до проведенння лабораторних робіт
- •Основні засоби для роботи з базами даних вdelphi
- •Архітектура баз даних вdelphi
- •Компоненти для роботи з базами даних
- •Завдання для лабораторних робіт Лабораторна робота №1 Створення та реструктуризація бази даних.
- •Завдання:
- •Зміст звіту:
- •Порядок виконання роботи Створення псевдоніму dbe
- •Створення таблиць бд
- •Визначення цілісності посилання між таблицями бд
- •Лабораторна робота №2
- •Використання Database Explorer при розробці форм
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbGrid
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbEdit, tLabel і редактора полів
- •Лабораторна робота №3
- •Лабораторна робота № 4 Обробка полів таблиць бази даних
- •Завдання:
- •Зміст звіту.
- •Порядок виконання роботи Створення полів, що обчисляються
- •Створення полів вибору даних (lookup - полів).
- •Лабораторна робота № 5
- •Використання контейнера tDataModule
- •Компонент tdbLookupComboBox
- •Порядок виконання роботи
- •Лабораторна робота № 6
- •Лабораторна робота № 7
- •Установка значень для пошуку
- •Лабораторна робота №8
- •Використання методів FindFirst, FindLast, FindNext, FindPrior.
- •Загальні зауваження до роботи з компонентомtQuery
- •Лаборатора робота № 9
- •Лабораторна робота № 10
- •Лабораторна робота № 11
- •Лабораторна робота №12
- •Побудова простих звітів
- •Групування даних в звіті
- •Перелік рекомендованої лiтератури
- •Навчально-методичне видання організація баз даних та знань
- •7.080401 "Інформаційні управляючі системи і технології " і
- •7.080402 "Інформаційні технології проектування"
Лабораторна робота №8
Організація фільтрації у базі даних
Мета:вивчення властивостей, методів та подій для фільтрації записів.
Завдання:
Виконати фільтрацію по одному та декількох полях.
Виконати фільтрацію з використанням індексів та без індексів.
Обов’язкові засоби: SetRange, Filter, Filtered, FindFirst, FindLast, FindNext, FindPrior.
Зміст звіту.
Опис застосування з зазначенням встановлених значень властивостей компонентів.
Лістинги розроблених процедур та їх аналіз.
Висновки по роботі.
Порядок виконання роботи
Методи ApplyRangeіSetRange.
Для фільтрації записів у ТБД компонент TTableмає такі методи:
procedure SetRangeStart - встановлює нижню межу фільтра;
procedure EditRangeEnd - встановлює верхню межу фільтра;
procedure ApplyRange -здійснює фільтрацію записів уTTable; умови фільтрації визначаються методамиSetRangeStartіEditRangeEnd;
procedure SetRange(const StartValues, EndValues: array of const) -дає той же ефект, що і послідовне виконання методівSetRangeStart,EditRangeEnd іApplyRange. У якості параметрів використовуються масиви констант, які містять значення ключових полів. МетодиApplyRange /SetRangeпоказують у НД тільки ті записи, індексні поля яких лежать у діапазоні[StartValues . . EndValues].
Фільтрація методами ApplyRange /SetRangeпроводиться по полю (полях) поточного індексу, обумовленого властивістюTTable.IndexNameабоTTable.IndexFieldNames. У випадку, якщо значення цих властивостей не встановлені, за замовчуванням використовується головний індекс ТБД. Тому, якщо потрібно використати індекс, відмінний від головного, необхідно явно перевстановити значення властивостіTTable.IndexName (ім'я поточного індексу)абоTTable.IndexFieldNames(список полів поточного індексу).
property Filtered:Boolean;
Властивість Filtered, встановлена вTrue, ініціює фільтрацію, умова якої записана або в обробнику подіїOnFilterRecord, або утримується як текстове значення у властивостіFilter. Якщо встановлені різні умови фільтрації і у подіїOnFilterRecord, і у властивостіFilter, то виконуються обидві.
Установка FilteredуFalseпризведе до скасування фільтрації, умови якої зазначені в подіїOnFilterRecordабо (і) у властивості Filter. При цьому фільтрація, накладена на НД методомSetRangeабоApplyRangeі йому супутніми методами, не порушується.
Властивості FilterіFiltered.
Властивість
property Filter:string;
дозволяє задати умови фільтрації. НД буде відфільтрований, як тільки його властивість Filteredстане рівноюTrue.
При записі умови фільтрації можна застосовувати оператори відношення: <; >; >=; <=; =; <>; а також використовувати логічні оператори AND, NOTіOR.
Використання методів FindFirst, FindLast, FindNext, FindPrior.
Розглянемо НД, в якому визначені умови фільтрації, але сама фільтрація в даний момент не виконується. У цьому випадку можна забезпечити навігацію тільки між тими записами, які задовольняють умові фільтрації.
Для цього використовуються методи FindFirst,FindLast,FindNext,FindPrior.
Умову фільтрації можна зробити співпадаючою з умовою пошуку, зазначеною у параметрі KeyValuesметодуLocate. При цьому пошук за допомогою зазначених методів має перевагу перед пошуком за допомогоюLocate: якщо уLocateможна вказувати тільки значення, то в умові фільтрації можна вказувати логічні умови.
У випадку, якщо запис знайдено, дані методи повертають Trueу протилежному випадку -False.
function FindFirst: Boolean;- переходить на перший запис, що задовольняє умові фільтрації;
function FindLast: Boolean;- переходить на останній запис, що задовольняє умові фільтрації;
function FindNext: Boolean;- переходить на наступний запис, що задовольняє умові фільтрації;
function FindPrior: Boolean;- переходить на попередній запис, що задовольняє умові фільтрації;
Приклад:Виконати фільтрацію у таблиці студент.
Початкова форма:
Результат: