Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Proektirovanie_BD_v_Delphi_VTiP.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.82 Mб
Скачать

5.3Использования компонента tQuery

5.3.1Свойство sql компонента tQuery

Свойство

property SQL: TStrings;

является центральным для компонента TQuery и является коллекцией (набором) строк, в которую на этапе разработки или прогона программы помешается текст запроса.

Рисунок 4.55 – Свойство SQL

Для введения текста запроса на этапе разработки нужно раскрыть и использовать связанный со свойством SQL многострочный текстовый редактор (Рисунок 4 .56). Приведенный текст запроса почти в точности, за исключением названий 2-х полей FName и TName, повторяет НД tbNakls, отображаемый в сетке DBGrid1 программы из раздела 3:

Рисунок 4.56 – Текст запроса в окне редактора свойства SQL с текстом запроса

Кроме того, если щелкнуть на кнопке Code Editor, то для формирования текста запроса можно использовать кодовый редактор среды Delphi (Рисунок 4 .57).

Рисунок 4.57 – Текст запроса в окне редактора кода среды Delphi

Как видно (Рисунок 4 .57), кодовый редактор Delphi автоматически выделяет в тексте зарезервированные слова SQL.

Закрыть окно кодового редактора можно нажатием клавиш Ctrl+F4 или выбором команды Close Page в его контекстном меню.

Примечание 1. Для некоторых БД в текст SQL-запроса можно включать комментарии, например для БД PostgreSql.

Внимание. При любом изменении свойств компонента-запроса он автоматически переходит в неактивное состояние (его свойство Active получает значение False). После изменения текста компонент TQuery следует открыть заново, то есть установить Active=True. При этом автоматически будет проверен синтаксис запроса и он будет отправлен на выполнение.

Примечание 2. Синтаксис SQL-операторов проверяется при установке свойства Active = true или при их выполнении методом Open или ExecSQL.

Примечание 3. Если текст запроса размещен на этапе разработки программы, для такого запроса можно создать объекты-поля.

Примечание 4. Присоединение к запросам полей из других запросов или таблиц и, соответственно, создание объектов-столбцов для их отображения смысла не имеет.

Текст SQL-запроса, заданный в окне редактора кода среды Delphi, является запросом по умолчанию. Т.е. такой запрос будет автоматически выполняться, если он не будет изменен в процессе выполнения программы (см. ниже).

5.3.2Методы Open и ExecSql

Помимо установки свойства Active = True компонент TQuerу имеет 2-ва метода Open и ExecSQL для выполнения запроса во время выполнения программы.

Метод Open используется для активизации запроса, возвращающего НД, то есть для активизации запроса SELECT. Например, для запроса quNakls, расположенного в модуле DM, получим:

DM.quNakls.Open;

а для запроса quNakls, расположенного на главной форме fmNakls, получим:

quNakls.Open;

Метод ExecSQL используется для активизации запросов, не возвращающих данные, то есть для активизации запросов CREATE, INSERT, DELETE, UPDATE, DROP и т.п.

Следует подчеркнуть, что:

  • при любом изменении свойств компонента-запроса, в том числе при занесении в свойство SQL нового запроса, он автоматически переходит в неактивное состояние (его свойство Active получает значение False). Для выполнения введенного запроса компонент следует открыть заново, то есть установить Active = True либо выполнить метод Open или ExecSQL.

  • синтаксис SQL-операторов проверяется только при установке свойства Active = True или при их выполнении методом Open или ExecSQL.

Примечание 1. Размещение компонент работы с БД в отдельном модуле данных является рациональным во многих отношениях. Однако компонент TQuery можно размещать на форме, к которой он относится. При этом в свойстве DatabaseName компонента-запроса необходимо указывать не локальный псевдоним БД в программе это - BiblData, а псевдоним БД в BDE – BiblDataMdb.

Примечание 2. Последующие примеры выполнены из расчета использования СУБД Access. При использовании другой СУБД возможны некоторые отличия. Так для СУБД PostgreSQL требуется имена таблиц и полей заключать в двойные кавычки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]