Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Методичка - Організація баз даних і знань.doc
Скачиваний:
36
Добавлен:
02.05.2014
Размер:
631.3 Кб
Скачать

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

Організація пошуку у базі даних

Мета: вивчення властивостей, методів та подій для пошуку даних.

Завдання:

  1. Виконання пошуку з використанням індексів та без індексів;

  2. Виконання неточного пошуку.

Обов’язкові засоби: Locate, Filtered, FindFirst, FindLast, FindNext, FindPrior, FindKey,FindNearest.

Зміст звіту.

  1. Опис застосування з зазначенням встановлених значень властивостей компонентів.

  2. Лістинги розроблених процедур та їх аналіз.

  3. Висновки по роботі.

Порядок виконання роботи

У компоненті TTableдля пошуку записів в НД застосовуються такі методи:

function FindKey(список значень): Boolean - шукає запис, який точно задовольняє умовам у списку значень; існує також його метод, що дублює,GoToKey;

procedure FindNearest(список значень) - шукає запис, що приблизно задовольняє умовам у списку значень; існує також його метод, що дублює,GoToNearest;

Крім цього, у TTableє методи, успадковані від батьківського класу:

function Locate(список полів, список значень): Boolean - установлює покажчик на запис, у якого список полів точно або неточно містить значення зі списку значень.

function Lookup(список полів, список значень, список результуючих полів):Variant - повертає значення полів зі списку результуючих полів для запису в НД, у якої поля зі списку пошукових полів точно містять значення зі списку значень. Покажчик поточного запису не змінюється.

Установка значень для пошуку

Пошук може здійснюватися тільки по індексним полям.

Склад полів, що використовуються для ідентифікації потрібного запису при пошуку в НД, визначається поточним індексом. Тому, якщо поля, по котрим необхідно здійснити пошук, не входять в індекс, що є поточним у даний момент, то у якості поточного індексу потрібно встановити індекс, побудований з полів, за значеннями яких і планується здійснити пошук. Для встановлення поточного індексу використовують властивості IntexFieldNamesабоIntexName.

Для індексів, до складу яких входять більше одного поля, повинні вказуватися значення всіх полів, що входять в індекс, або значення полів старших рівнів вкладеності.

Точний пошук

Для точного пошуку (пошуку на точну відповідність) застосовується метод

function FindKey(список значень):Boolean;

При пошуку на точну відповідність робиться спроба відшукати в НД запис, у котрого індексні поля відповідають значенням, зазначеним у списку записів. Якщо такий запис знайдено, то методFindKeyповертаєTrueіробить знайдений запис поточним. Якщо знайдено декілька записів, що відповідають умові, то поточним стає логічно перший із них. Якщо запис не знайдено, то курсор НД не переміщується і методFindKeyповертаєFalse.

Неточний пошук

Неточний пошук (пошук на неточну, приблизну відповідність) застосовує метод

procedure FindNearest(список параметрів);

При пошуку на неточну відповідність робиться спроба відшукати в НД запис, у якого індексні поля відповідають значення, вказаним у списку значень. Якщо такий запис знайдено, то покажчик поточного запису в НД переміщується на нього або на наступний запис, у залежності від значення властивостіproperty KeyExclusive:Boolean. ЯкщоKeyExclusive=False(за замовчуванням), то покажчик поточного запису переміщується на знайдений запис. ЯкщоKeyExclusive=True, то покажчик поточного запису переміщується на наступний за знайденим запис. Якщо запис не знайдено, то покажчик поточного запису завжди переміщується на найближчий запис з більшим значенням індексу.

Приклад:Виконати пошук у таблиціГрупа.