Запит написаний, але ще не виконаний. Для його виконання потрібно встановити властивість Active в true.
Перейдіть в модуль даних DataModule і двічі клацніть по компоненту FindQuery. У вікні, що з'явилося, клацніть правою кнопкою миші і виберіть пункт меню «Add all fields». У редакторові повинні відобразитися всі поля таблиці. Тепер двічі клацніть по компоненту BookTable, щоб відобразити вікно властивостей вже налагодженої таблиці. Розташуйте обидва вікна поряд одне з одним, щоб можна було завжди їх бачити. Виділіть перший стовпець в редакторові властивостей таблиці BookTable, запам'ятайте його властивості, перейдіть в редактор властивостей полів запита та зробіть там таке ж саме налаштування.
Рис. 3 Ліворуч властивості полів запиту, праворуч властивості полів таблиці
Коли перенесете всі властивості, не забудьте створити пошукове поле для поля «Город».
Реалізуйте безпосередньо пошук за допомогою SQL запиту. Для цього створіть нову форму, в якій буде відображатися результат і назвіть її FindResultForm. Змініть наступні властивості:
· Caption – змініть на «Результат поиска»;
· Position – встановіть в poMainFormCenter, щоб вікно відображалося по центру головного вікна.
Щоб вікно бачило таблиці, до нього треба підключити модуль даних - DataModuleUnit. Для цього використовуйте меню File-> Use Unit.
Киньте на форму сітку DBGrid із закладки Data Controls і розтягніть її по всій формі. Перейдіть в об'єктний інспектор і змініть властивість DataSource на DataModule1.FindSource, щоб побачити в сітці результат запиту.
Можна зберігати форму під ім'ям FindResultUnit. Зовнішній вигляд представлений на рис. 4:
Рис. 4 Вікно результату пошуку
Перейдіть на головну форму і на панелі пошуку додайте напис і рядок введення для пошуку по телефону. Найостаннішою додайте кнопку, натискаючи по якій буде запускатися пошук.
На рис. 5 можна побачити покращене головне вікно програми.
Рис. 5 Покращена панель пошуку
По натискання кнопки «Найти» напишіть наступний код:
DataModule1.FindQuery.SQL.Add ( ' WHERE Телефон LIKE '''+FindTelephoneEdit.Text+'''');
DataModule1.FindQuery.Active:=true;
FindResultForm.ShowModal;
end;
У першому рядку коду компонент запиту робиться неактивним. Після цього треба заповнити властивість SQL запитом на пошук даних. Ця властивість має тип TStrings, який використовувався при роботі з елементами списку TListBox, TComboBox і ін. Але перш ніж заповнювати новими значеннями, потрібно очистити властивість від старого запиту, який міг залишитися після останнього виклику (якщо користувач вже натискував кнопку «Найти», то там буде старий запит, який при наступному натисканні треба буде очистити). Для очищення викликається метод Clear. Далі йде заповнення властивості SQL текстом запиту. Потрібно внести наступний запит: