Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторні роботи_ООП.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
7 Мб
Скачать
☆

Лабораторна робота №18

Тема: Пошук в діапазоні значень в базах даних Delphi.

Мета роботи: Навчити використовувати функції SetRangeStart, SetRangeEnd, ApplyRange.

Завдання

Створити програму для пошуку в діапазоні значень.

Хід роботи

  1. Відкрийте попередній проект і доповніть інтерфейс форми 2, як показано на рисунку 1.

  2. Запишіть коди для обробника натискування на кнопку Locate, за допомогою яких здійснюється пошук запису в наборі Замовлення за заданими значеннями Дата замовлення та Замовлена кількість (при цьому необхідно перетворбвати дані задані в рядковому редакторі до типу, який присвоєний відповідному полю).

  3. Доповніть інтерфейс форми 2, як показано на рисунку 2.

  4. Запишіть коди для обробника натискування на кнопку FindKey, за допомогою яких здійснюється пошук запису в наборі Замовлення за заданими його номером.

  5. Запишіть коди для обробника натискування на кнопку FindNearest, за допомогою яких здійснюється приблизний пошук запису в наборі Замовлення за заданими його номером.

  6. Перевірте роботу програми.

Рис 1.

Рис 2.

  1. За допомогою програми Database Desctop встановіть в таблиці замовлення вторинний індекс по полю Data_zamov.

  2. Запишіть коди для обробника натискування на кнопку SetKeyGotoKey, за допомогою яких здійснюється пошук запису в наборі Замовлення за вказаною датою замовлення (використавши вторинний індекс Data_zamov).

  3. Запишіть коди для обробника натискування на кнопку GotoNearestet, за допомогою яких здійснюється наближений пошук запису в наборі Замовлення за вказаною датою замовлення (використавши вторинний індекс Data_zamov).

  4. Доповніть інтерфейс форми 2, як показано на рисунку.

  1. Запишіть коди для обробника натискування на кнопку Пошук в діапазоні, за допомогою яких здійснюється пошук набору записів в наборі Замовлення за заданими початковою і кінцевою датою замовлення.

Теоретичні відомості

В наборі даних, окрім фільтрів, є ще один засіб відбору записів. Група методів дозволяє на основі використання індексів відбирати до набору даних тільки ті записи, значення індексованих полів яких (для поточного індексу) відповідають діапазону заданих величин.

Діапазони працюють швидше фільтрів, але менш гнучкі і не так зручні в роботі. При використанні діапазонів набір даних обов’язково повинен знаходитися в стані dsSetKey.

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

Всі методи роботи з діапазонами використовують ті поля, які задані в поточному індексі. Для таблиць Paradox і dBASE це властивість IndexName. Для таблиць серверів SQL це властивість indexFieldNames.

Метод SetRangeStart переводить набір даних в режим dsSetKey, наступні за цим присвоювання ключовим полям означає завдання початкової межі діапазону.

Метод SetRangeEnd також переводить набір даних в режим dsSetKey, наступне за цим присвоювання ключовим полям означає завдання кінцевої межі діапазону.

Після цього необхідно використати метод ApplyRange, який застосовує створений діапазон до набору даних:

with Tablel do begin

SetRangeStart;

Fields[0].Value := '439';

SetRangeEnd;

Fields[1].Value := '522';

ApplyRange;

end;

Працюючий діапазон можна модифікувати аналогічним чином: після виклику методів EditRangeStart і EditRangeEnd необхідно задати нові межі для ключових полів і знову викликати метод ApplyRange:

with Tablel do begin

EditRangeStart;

Fields [0] .Value := '500';

EditRangeEnd;

Fields[1].Value := '522';

ApplyRange;

end;

Відміна діапазону здійснюється методом CancelRange.

Якщо індекс містить декілька полів, то перед викликом методу ApplyRange необхідно задати значення для всіх ключових полів.

Для одночасного завдання верхньої і нижньої межі діапазону можна використати метод SetRange.

with Tablel do begin

SetRange(['500'], ['522']);

ApplyRange;

end;

Тим, яка границя буде у діапазону – відкрита чи закрита, керує властивість KeyExclusive. Якщо вона має значення True, граничні значення в діапазон не включаються, в противному випадку – включаються.

Зауваження. Значення кінцевих величин діапазону повинні бути реальними даними для заданого поля в наборі записів.

Питання для самоконтролю:

  1. Які методи можна використати для пошуку по довільній виборці полів?

  2. Яке призначення закладок у таблицях?

  3. Які методи використовуються для роботи із закладками в наборі даних?

  4. Які існуються методи пошуку по індексних полях?

  5. Які методи використовуються для пошуку по вторинних індексах?

  6. Які методи використовуються для пошуку у діапазоні даних?

  7. Які переметри потрібно передати для пошуку у діапазоні даних?

  8. Які методи використовуються для відміни діапазону і для застосування діапазону?