Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методические указания 2012.doc
Скачиваний:
4
Добавлен:
18.11.2019
Размер:
280.58 Кб
Скачать

Комментарий к тексту запроса

В первой строке оператора выборки из базы перечисля­ются имена таблиц и через точку имена полей этих таблиц, которые будут присутствовать в выборке запроса.

Во второй строке формируется вычисляемое поле, кото­рое представляет собой произведение полей Quantity * Price соот­ветствующих таблиц и ему присваивается имя STOIM.

В третьей строке перечисляются таблицы, к которым производится обращение из базы.

Начиная с четвертой строки, записывается сложное усло­вие выборки полей из базы (при равенстве полей Ntour в таблицах Permit, Register и с датами между 1 февраля и 31 марта 2010 года и равенстве полей Ntour таблиц Permit, Tour и равенстве полей Nfirm таблиц Permit, Firma и полем Last_mt = * таблицы Permit. В результате запроса из базы выбира­ются наименования туров и фирм-контрагентов. В соответствующем интервале дат и для каж­дого тура формируется вычисляемое поле STOIM в сто­имостном выражении тура.

Следующий запрос вычисляет агрегатную функцию сум­мы вычисляемых полей Quantity * Price и дает этому суммарному полю имя TOTAL.

SELECT Sum(Permit.Quantity * Register.Price) AS TOTAL

FROM Permit, Register

WHERE (Permit. Ntour = Register. Ntour AND Permit.Last_mt BETWEEN

«01.02.10» AND «31.03.10» AND Permit.Last_mt =’*’);

Обработка событий

Объектно-ориентированная технология имеет модульную структуру. Каждый модуль активируется и выполняется при наступлении какого-либо события (вызов пункта меню, на­жатие кнопки, активизация компонента и т.д.). Сам модуль, в свою очередь, разбит на процедуры, которые также уп­равляются событиями или вызываются из других процедур. События, которые может генерировать компонент, перечис­лены на вкладке «события» инспектора объектов при акти­визации компонента и здесь же можно задать программу обработки любого события. Рассмотрим этот процесс на примере обработки события нажатия кнопки «Расчет». У кнопки мы в нашей задаче задали только одно свойство — название (Caption) и обработку только одного события, на­ступающего при нажатии кнопки (OnClick). Двойной щел­чок мышью в пустой графе напротив названия события вы­зывает готовую форму программы обработки события, ограниченную операторными скобками begin end, между которыми необходимо ввести текст программы обработки, например для кнопки «ВЫХОД» это оператор Close, который закрывает все открытые файлы и приложения:

Begin

Close;

End.

Код обработки кнопки расчет выделен жирным шрифтом в процедуре обработки события OnClick кнопки «РАСЧЕТ»:

procedure TForml.ButtonlClick(Sender: TObject);

begin

Query 1. Active:=True;

Queryl.Open;

try

While not Queryl.Eof do

begin

Table5.Insert;

Table5.FieldByName(‘Name_tour). AsString:=Queryl.FieldByName(‘Name_tour). AsString;

Table5.FieldByName(‘Date_of_trip’). AsString:=Queryl.FieldByName(‘Date_of_trip’). AsString;

Table5.FieldByName(‘Last_mt).AsString:=Queryl.FieldByName(‘Last_mt).AsString;

Table5.FieldByName{‘ Firma’).AsString:=Queryl.FieldByName(‘Firma’).AsString;

Table5.FieldByName(‘STOIM’).AsInteger:=Queryl.FieldByName(‘STOIM’).AsInteger;

Query1.Next;

end;

except

On EDataBaseError do ShowMessage («Проверьте данные»);

end;

Query2.Active:=True;

Query2.Open;

Editl.Text:=Query2.FieldByName(‘TOTAL).AsString;

end;