Тут написаний практично той же запит, який вже використовувався. Єдина різниця - замість параметра FindTelephoneEdit.Text стоїть :Telephone. Це змінна, про що говорить двокрапка спочатку імені. Змінна в SQL запиті оформляється як:
:ИмяПеременной
Закрийте вікно редактора запиту і двічі клацніть по властивості Parameters. Відкриється вікно редактора параметрів (рис. 6). Описаний в запиті параметр автоматично потрапляє сюди. Виділіть параметр Telephone і погляньте на його властивості в об'єктному інспекторові.
Рис. 6 Редактор параметрів
У властивості DataType треба вказати тип змінної. У нашому випадку буде рядок з номером телефону, тому виберіть із списку тип ftString. У властивості Value можна вказати значення за умовчанням. Спробуйте вказати там будь-який номер телефону з бази і зробіть компонент FindQuery активним. Тепер відкрийте вікно, яке повинне відображати результат пошуку і погляньте на сітку, в якій вже відображається результат пошуку.
Підправте обробник події кнопки «Найти». Там повністю формувався запит, але тепер цього не треба робити. Досить лише змінити значення параметра. Для цього зробіть знищення старого коду обробника і напишіть наступний:
На самому початку так само компонент запиту робиться неактивним. Після цього треба змінити значення параметра. Для цього використовується конструкція DataModule1.FindQuery.Parameters.ParamByName('Telephone').Value. Всі параметри зберігаються у властивості Parameters компонента запиту. У цій властивості, щоб знайти потрібний параметр використовується метод ParamByName. Як єдиний параметр цьому методу потрібно передати ім'я параметра. І у властивості Value запишіть значення для знайденого параметра.
Після цього, запит можна робити активним, щоб він виконався і можно було б побачити результат. Така робота з динамічними запитами на багато легше, особливо, якщо запити великі, а змінюється лише якесь значення, яке можна замінити на змінну.