- •24. Компоненты для работы с таблицами базы данных
- •25.Основные особенности и использование компонента Query
- •26. Построение статических и динамических запросов
- •27. Состояния набора данных. Методы изменения данных.
- •28. Доступ к данным.
- •29. Навигация по набору данных.
- •30.Поиск записей в наборах данных
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;
