Свойство SQL

Свойство

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, является запросом по умолчанию. Т.е. такой запрос будет автоматически выполняться, если он не будет изменен в процессе выполнения программы (см. ниже).