Свойство
propertySQL: TStrings;
является центральным для компонента TQuery и является коллекцией (набором) строк, в которую на этапе разработки или прогона программы помешается текст запроса.
Рисунок 4.5 – Свойства SQL
Для введения текста запроса на этапе разработки нужно раскрыть и использовать связанный со свойством SQL многострочный текстовый редактор (рисунок 7.5). Приведенный текст запроса совпадает с текстом запроса рисунка 7.2 и почти в точности, за исключением названий двух полей FName и TName, повторяет НД tbNakls, отображаемый в сетке DBGrid1 программы из раздела 3:
Рисунок 4.5 – Текст запроса в окне редактора свойства SQL с текстом запроса
Кроме того, если щелкнуть на кнопке Code Editor, то для формирования текста запроса можно использовать кодовый редактор среды Delphi (рисунок 4.6).
Рисунок 4.6 – Текст запроса в окне редактора кода среды Delphi
Как видно из рисунка 4.6, кодовый редактор Delphi автоматически выделяет в тексте зарезервированные слова SQL.
Закрыть окно кодового редактора можно нажатием клавиш Ctrl+F4 или выбором команды Close Page в его контекстном меню.
Примечание. Для некоторых БД в текст SQL-запроса можно включать комментарии, например для БД PostgreSql.
При любом изменении свойств компонента-запроса он автоматически переходит в неактивное состояние (его свойство Active получает значение False). После изменения текста компонент следует открыть заново, то есть установить Active=True. При этом автоматически будет проверен синтаксис запроса и он будет отправлен на выполнение.
Примечание 1. Синтаксис SQL-операторов проверяется при установке свойства Active = true или при их выполнении методом Open или ExecSQL.
Примечание 2. Если текст запроса размещен на этапе разработки программы, для такого запроса можно создать объекты-поля.
Примечание 3. Присоединение к запросам полей из других запросов или таблиц и соответственно создание объектов-столбцов для их отображения смысла не имеет.
Текст SQL-запроса, заданный в окне редактора кода среды Delphi, является запросом по умолчанию. Т.е. такой запрос будет автоматически выполняться, если он не будет изменен в процессе выполнения программы (см. ниже).