SQL – запросы

Компонент TQuery, как и компонент TTable, обладает всеми свойствами компонента TDataSet. Как и в случае с компонентом TTable, компонент TDataSource управляет взаимодействием между компонентами DataControls и компонентом TQuery. Обычно приложение имеет один компонент DataSource для каждого компонента TQuery. Наиболее часто используются следующие свойства и методы компоненты TQuery:

Свойство Active - указывает, открыт (true) или закрыт (false) данный запрос.

Основное свойство компонента TQuery – SQL, который является строковым массивом, содержащим текст оператора запроса SQL. Язык SQL непроцедурный. На нем можно написать, что нужно получить в результате запроса, но нельзя написать, как это сделать, то есть нельзя описать саму процедуру выполнения запроса. В процессе проектирования приложения обычно необходимо сформировать в свойстве SQL некоторый предварительный запрос SQL, который показал бы, с какой таблицей или таблицами будет производиться работа. Но далее во время выполнения приложения свойство SQL может формироваться программно методами: Clear – очистка и Add – добавление строки.

Метод Open - открывает соединение с базой данных. Он эквивалентен присвоению свойству Active значения true. Используется, если результатом запроса является набор данных (такие запросы обычно начинаются с оператора Select).

Метод Close - закрывает набор данных. Вызов Close эквивалентен присвоению свойству Active значения false.

Рис. 15. Форма для поиска сотрудников.

Задание 16. Однотабличные запросы.

1. Создайте новую форму, на которой будет осуществляться поиск сотрудников второй бригады. На этой форме разместите компоненты DBGrid, DataSource, Query (закладка BDE палитры компонент) и установите связи между ними и базой данных. Для компонента Query1 и в Object Inspector установите для свойства DatabaseName алиас базы данных - Stroika. Значение свойства DataSet для компонента DataSource установите Query1. Для компонента DBGrid свойство DataSource поставьте DataSource1.

2. Для компонента TQuery в Object Inspector установите свойство SQL: при нажатий на это свойство открывается новое окно для ввода текста SQL запроса, введите в него следующее:

select *

from Table1

where Nombrig:=2

3. Для обработки события нажатия на кнопку «Поиск» запишите в соответствующую процедуру следующие строки:

with Query1 do

begin

Close;

Open;

end;

4. Сохраните и запустите приложение. Проверьте правильно работает SQL запрос или нет. Этот запрос должен выдавать информацию о всех сотрудниках из таблицы Table1, которые работают во второй бригаде.

Задание 17. Поиск с параметром.

1. Создайте новую форму, на которой будет осуществляться поиск сотрудников. В поле ввода во время выполнения приложения будет вводиться сумма и нужно получить информацию о сотрудниках, которые получают заработную плату ниже этой суммы (рис. 16).

Рис. 16. Форма для поиска с помощью SQL запроса.

2. Впишите в процедуру обработки события нажатия на кнопку «Поиск» следующие строки:

if Edit1.text='' then ShowMessage('Введите сумму!') else

with Query1 do

begin

Close;

SQl.Add ('select * from Table1 where NomRab=:SumR');

ParamByName('SumR').AsFloat:= StrToFloat(Edit1.Text);

Open;

end;

3. Запустите приложение и проверьте, как оно работает.

Задание 18. Многотабличные запросы.

1. Получить табельные номера и фамилии тех сотрудников, которые работали на определенном объекте.

2. Получить список объектов, бригад, которые работали на этом объекте, и их бригадиров.

3. Реализовать запрос с параметром, который при выборе названия объекта, выдает список фамилий сотрудников и количество часов, отработанных ими на данном объекте.

Список литературы

1. Архангельский А.Я. Delphi. Справочное пособие. – М.: Бином-Пресс, 2004. – 1024с.: ил.

2. Фаронов В.В. Программирование баз данных в Delphi 7. – СПБ.:Питер, 2005.- 459с.: ил.

3. Сухарев М.В. Основы Delphi. Профессиональный подход. – СПб.: Наука и Техника, 2004. – 600с.: ил.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: