КАТЕГОРИИ: Архитектура-(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; Просмотров: 725; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |