Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание параметрического запроса




Создание запроса с групповыми вычислениями

Создание запроса с групповыми вычислениями осуществляется следующим образом.

1. Создать или выбрать форму для реализации запроса (создание - кнопка New Form на панели инструментов, 4-я слева на панели инструментов, выбор – кнопка Veiw Form (2-я слева на панели инструментов)). В свойствах формы в поле Name можно задать имя, например, Query3Form.

2. Расположить на модуле данных компонент ADOQuery (панель ADO). Для данного компонента настроить следующие свойства: в свойстве Connection выбрать ADOConnection1; в свойстве SQL щелкнуть по кнопке и в открывшемся окне набрать запрос на языке SQL; в свойстве Active выбрать true.

Во вкладке Events модуля данных для события onCreate в процедуре обработки события дописать:

ADOQuery1.Active:= true;

Номер компонента может быть отличным от единицы.

3. Расположить на форме для реализации запроса компоненты DataSource (панель Data Access), DBGrid (панель Data Controls).

4. В модуле, соответствующем созданной форме для реализации запросов, для доступа к компонентам модуля данных в разделе implementation выставить uses unit2 (если модуль данных был создан вторым).

5. Установить для компонента DataSource – в свойстве DataSet имя компонента на модуле данных, реализующего запрос, (например, имя_модуля_данных. ADOQuery1 (номер компонента может быть другим)).

Установить для DBGrid – в свойстве DataSource значение DataSource1.

Пример запроса, который выбирает поля Tovar и Zena из таблицы Tovar и суммирует поле Kolvo из таблицы Prihod (сумма по полю количество (Kolvo) получает имя Sum_Kolvo). В запросе записи группируются по полям Tovar, Zena (конструкция GROUP BY T.Tovar, T.Zena). Конструкция WHERE содержит условие связывания двух таблиц (таблицы связаны по полю Tovar).

 

SELECT T.Tovar, T.Zena, SUM(P.Kolvo) As Sum_Kolvo

FROM Tovary T, Prihod P

WHERE T.Tovar = P.Tovar

GROUP BY T.Tovar, T.Zena

 

6. Чтобы выполнить запрос, необходимо в модуле данных установить для ADO Query в свойстве Active значение True. Результат выполнения запроса будет виден в компоненте DBGrid на форме для реализации запроса.

7. Сохранить произведенные изменения (File, Save All).

 

Создание параметрического запроса осуществляется следующим образом.

1. Создать или выбрать форму для реализации запроса (создание - кнопка New Form на панели инструментов, 4-я слева на панели инструментов, выбор – кнопка Veiw Form (2-я слева на панели инструментов)). В свойствах формы в поле Name можно задать имя, например, Query4Form.

2. Расположить на модуле данных компонент ADOQuery (панель ADO). Для данного компонента настроить следующие свойства: в свойстве Connection выбрать ADOConnection1; в свойстве SQL щелкнуть по кнопке и в открывшемся окне набрать запрос на языке SQL.

Параметрами в этом запросе являются имена, перед которыми стоят двоеточия «:». В параметрических запросах параметры заменяют значения, которые могут изменяться в процессе выполнения. Имена параметров произвольны и могут не совпадать с именами полей, которым они ставятся в соответствие. В данном запросе имена параметров совпадают с именами полей (запрос выбирает записи по заданным названию товара Tovar и дате прихода DatPrih).

 

SELECT Р.* FROM Prihod Р

WHERE (Tovar =:Tovar) AND (DatPrih =:DatPrih)

 

Закрыть окно, щелкнув по кнопке ОК.

5. В Инспекторе Объектов выбрать свойство Parameters и щелкнуть по кнопке в строке этого свойства. В появившемся окне будут показаны имена всех параметров, введенных в тексте параметрического SQL-запроса. Каждому параметру из списка необходимо поставить в соответствие определенный тип и стартовое значение. Стартовое значение задавать необязательно. Раскрыть список Value и в строке Type задать для Tovar OleStr (String) (текстовое поле), для поля DatPrih задать в строке Type значение Date (поле типа дата).

 

6. Для активации запроса в свойстве Active выбрать true.

Во вкладке Events модуля данных для события onCreate в процедуре обработки события дописать:

ADOQuery1.Active:= true;

Номер компонента может быть отличным от единицы.

7. Расположить на форме для реализации запроса компоненты DataSource (панель Data Access), DBGrid (панель Data Controls).

8. В модуле, соответствующем созданной форме для реализации запросов, для доступа к компонентам модуля данных в разделе implementation выставить uses unit2 (если модуль данных был создан вторым).

9. Всякий раз, когда необходимо изменить значения параметров запроса, программа должна закрыть Query, присвоить значения параметрам и повторно открыть его. Это реализует процедура, которая запускается при щелчке по соответствующей кнопке. Создадим панель, на ней два окна для ввода товара и даты и кнопку вызова процедуры, которая будет запускать параметрический запрос.

10. Поместить в форму панель (компонента Panel на панели Standard). Сделать такой размер панели, чтобы на ней поместились две надписи, два окна и кнопка. Для панели в свойстве Caption стереть название.

11. Создать на панели две надписи (кнопка Label на панели Standard). Для надписей в свойстве Caption задать названия полей (например, Товар и Дата прихода).

12. Создать на панели два текстовых поля (кнопка Edit на панели Standard). Для полей в свойстве Text стереть названия.

13. Создать на панели кнопку (кнопка Button на панели Standard). В свойстве Caption задать Выдать.

14. Двойной щелчок по кнопке открывает окно процедуры обработки события. Создать следующий обработчик события OnClick кнопки Выдать (ADOQuery1 может иметь номер, отличный от единицы).

procedure …

 

Begin

With имя_модуля_данных.ADOQuery1 do

begin

Close;

Parameters.ParamByName(‘Tovar’).Value:= Edit1.Text;

Parameters.ParamByName(‘DatPrih’).Value:= StrToDate(Edit1.Text);

Open;

end;

End;

 

Щелкнуть по кнопке ОК.

 

Если дата выбирается из календаря (компонент DateTimePicker), то строка присвоения значения параметру будет иметь вид:

Parameters.ParamByName('DatPrih').Value:= DateTimePicker1.DateTime;

Для компонента DateTimePicker необходимо стереть значение в строке Time, а в базе данных поле типа даты должно иметь краткий формат отображения даты.

15. Сохранить произведенные изменения и проверить работу запроса. В текстовые поля ввести значения (например, название товара и дату прихода). Для выполнения запроса щелкнуть по кнопке Выдать.

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 701; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.