Пример использования компонентов, работающих с SQL-запросами
1. Для создания нового приложения выполните команду File ► New VCL Form Application.
2. Разместите на форме компоненты TQuery и TDataSource. Последний необходим для связи набора данных с компонентами визуализации данных и расположен на вкладке Data Access палитры компонентов.
3. Подключите базу данных Sales. Поскольку эта процедура рассматривалась в главе 9 применительно к компоненту ТТаЫе, здесь мы на ней останавливаться не будем.
ПРИМЕЧАНИЕ------------------------------------------------------------------------------
В отличие от ТТаЫе, класс TQuery не имеет свойств, в которых указывается связанная с ним таблица базы данных. При его использовании информация поступает в набор данных в результате выполнения SQL-запроса, заданного в свойстве SQL.
4. Для задания запроса щелкните на кнопке с многоточием в поле ввода свойства 50Е инспектора объектов. При этом откроется окно текстового редактора, в котором формируется запрос. Сформируйте запрос, как показано на рис. 11.1: Его назначение состоит в возвращении выборки данных, содержащей все поля и все записи таблицы Товары нашей базы данных.
5.
Щелкните на кнопке Code Editor. Текст запроса появится в окне редактора кода (рис. 11.2), причем ключевые слова языка SQL будут выделены полужирным шрифтом, что снижает вероятность ошибок при написании запроса.
СОВЕТ ---------------------------------------------------------------------------------------
При использовании компонента доступа к данным TQuery для задания SQL-запроса можно применять визуальный редактор запросов SQL Builder, который вызывается командой SQL Builder контекстного меню компонента TQuery, помещенного на форму.
Однако он плохо работает с базами данных, в которых имена полей заданы кириллицей (выдаются различные малопонятные сообщения об ошибках).6. Выполните настройку источника данных TDataSource. Она производится так же, как в случае компонента ТТаЫе — в свойстве DataSet указывается имя объекта доступа к данным (по умолчанию — Queryl).
Далее необходимо разместить на форме необходимые элементы управления и выполнить их настройку.
7. Выберите следующие элементы:
■ компонент ТМето — для отображения и редактирования текста запроса;
■ компонент TDBGrid — для отображения результатов выполнения запроса;
■ кнопку TButton — для подачи команды на выполнение запроса.
Примерный вариант размещения на форме необходимых компонентов показан на рис. 11.3.
Рис. 11.3. Размещение элементов управления на форме |
5. Для настройки компонента визуализации полей базы данных TDBGrid в его свойстве DataSource укажите имя источника данных (по умолчанию — DataSourcel). Следующий этап — реализация процедур открытия и закрытия набора данных.
Если в результате выполнения SQL-запроса возвращаются данные, для его выполнения необходимо воспользоваться методом Open класса TQuery. Данный метод следует выполнять при запуске приложения, например в обработчике события OnShow главной формы. При этом происходит выполнение запроса, заданного в свойстве SQL, а результаты его выполнения отображаются в сетке DBGridl.
6. При закрытии приложения следует закрыть и набор данных. Вызовите метод Open в обработчике события OnShow главной формы, а метод Close — в обработчике ее же события OnClose,
7. Осталось написать обработчик события OnClick для кнопки Выполнить запрос. Данная кнопка понадобится в дальнейшем для изменения текста запроса с последующим выполнением его без перекомпиляции программы.
При щелчке на кнопке должен выполняться запрос. Будем полагать, что в результате выполнения запроса возвращаются данные. В этом случае при щелчке на кнопке следует передать текст запроса из компонента memSQL в свойство SQL компонента Queryl и открыть набор данных, вызвав метод Open компонента Queryl.8. Откомпилируйте и запустите приложение.
Текст модуля разработанной формы приведен в листинге 11:1.
Листинг 11.1. Главный модуль приложения
unit SQLjnain:
interface
uses
Windows. Messages. SysUtils, Classes. Graphics, Controls. Forms. Dialogs. Grids. DBGrids. Db. StdCtrls. ExtCtrls. DBTables;
type
TfrmMain = class(TForm)
Query1: TQuery:
DataSourcel: TDataSource;
DBGridl: TDBGrid:
memSQL: TMemo;
btnExecSQL: TButton;
procedure FormShowtSender: TObject):
procedure FormClosetSender: TObject;
var Action: TCloseAction); procedure btnExecSQLClick(Sender: TObject): private
{ Private declarations } public
{ Public declarations } end;
var
frmMain: TfrmMain; implementation {$R *.DFM}
procedure TfrmMain.FormShowtSender: TObject); begin
memSQL.Lines.Cl ear;
memSQL.Li nes.Assn gn(Query1.SQL);
Query1.Open; end;
procedure TfrmMain.FormClosetSender: TObject: var Action: TCloseAction): begin
if Queryl.Active then Queryl.Close; end;
procedure TfrmMain.btnExecSQLClicktSender: TObject): begin
if Queryl.Active then Queryl.Close;
Queryl.SQL.Cl ear;
Queryl.SQL.Assi gntmemSQL.Lines):
Queryl.Open: end;
end.
После запуска приложения в компоненте ОВбп'сП на форме отобразится информация, содержащаяся в таблице Товары базы данных sales.mdb (рис. 11.4).
Рис. 11.4. Результат выполнения SQL-запроса |
Еще по теме Пример использования компонентов, работающих с SQL-запросами:
- 1. Ожидания и запросы аудитории
- Примеры жестокости по отношению к другим (эти примеры более всего относятся к семейной жизни):
- Раздел III Использование достижений криминалистической психологии при собирании, оценке, использовании личностной информации
- Функциональные компоненты правового сознания.
- § 3.1. Основные структурные компоненты организации
- Статья 231. Незаконный сбор с целью использования или использование сведений, составляющих коммерческую или банковскую тайну
- Участие образных компонентов в мышлении следователя
- Основные компоненты.
- 54. Основные компоненты социального контроля
- Дополнительные компоненты (общие).
- Дополнительные компоненты (специальные)
- Дополнительные компоненты общие.
- Дополнительные компоненты (общие).