Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
24-30.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
67.07 Кб
Скачать

25.Основные особенности и использование компонента Query

Компонент Query

Компоненты Table и Query являются наследниками класса TDataSet ,

поэтому у них очень много общих свойств и методов. Query обладает

большими возможностями, позволяет формировать запросы к базе данных на

языке SQL, создавать логические таблицы.

Однако в отличие от TTable, который работает с одной таблицей, TQuery позволяет создавать наборы данных по нескольким таблицам.

Query Представляет данные в виде таблицы, колонки которой являются потомками

класса TField. Однако таблица компонента – логическая, формируется в ре-

зультате SQL-запроса.

Для внесения изменений в таблицы используются специальные запросы: INSERT, UPDATE, DELETE

Query предназначен для работы с распределёнными СУБД, но может

использоваться и в локальных

Процедура ExecSQL выполняет запросы без открытия набора данных.

Функция ParamByName(Name) обеспечивает доступ к параметру по име-

ни Name.

Процедура Prepare готовит запрос к выполнению.

Процедура UnPrepare отменяет последствия вызова Prepare.

Процедура GetDetailLinkField (MasterFields, DetailFields) за-

полняет список MasterFields полями главной таблицы и DetailFields –

полями подчинённой таблицы.

26. Построение статических и динамических запросов

В зависимости от времени создания запроса они делятся на статические

и динамические.

Статические (неизменяемые) запросы создаются во время

разработки приложения. В таких запросах возможно применение компонентов109

полей.

Статический запрос SELECT не только создаётся, но и выполняется на

этапе дизайна.

Динамические запросы формируются во время выполнения про-

граммы. Для подготовки запроса используется метод Add или запрос загружа-

ется из файла.

Различают обычные и параметрические запросы.

Параметрическим является запрос, в SQL-операторе которого могут изменяться отдельные составляющие. Изменяемые части оператора оформляются как параметры. Начальные значения параметров могут задаваться в Инспекторе объектов. Изменяемые па

раметры вводятся разными способами во время выполнения программы. При

этом сам запрос может быть сформулирован программно или в Инспекторе

объектов.

Наибольшими возможностями обладают динамические параметрические

запросы.

Пример.

Создать приложение для вывода данных из таблицы Заказов

(Orders) с помощью статического запроса.

Последовательность действий

Поместить на форму компоненты Query1, DataSource1 и DBGrid1.

Задать значения свойств компонента Query1:

– в свойстве DatabaseName указать псевдоним (alias) базы данных

(DBDemos). Вместо псевдонима можно задать путь к папке, в которой

находятся таблицы БД;

– в свойстве SQL ввести запрос. Для этого в Инспекторе объектов для

свойства SQL открыть StringListEditor и записать текст запроса, на-

пример: Select *from orders

– свойство Active установить в true.

Для компонента DataSource1 в свойстве DataSet указать Query1.

Для компонента DBGrid1 в свойстве DataSource задать DataSource1.

В результате все поля таблицы orders будут выведены в компонент

DBGrid1. Если требуется вывести только часть полей, то надо изменить текст

запроса:

Select OrderNo, CastNo, SaleDate, ShipDate from Orders

Так как любое изменение свойства SQL закрывает набор данных, то надо

в свойстве Active задать true.

Пример

Сформировать программно запрос для вывода из таблицы

Country всех сведений об Аргентине.

Query1.Close;

Query1.SQL.Clear;

Query1.SQL.Add(’SELECT * FROM Country’);

Query1.SQL.Add(’WHERE Name=’’Argentina’’’);

Query1.Open;