Лабораторная работа № 7
Создание динамических запросов.
Цель: Изучение возможности использования компонента TQuery и конструктора запросов SQL Builder.
Задание: Создать динамический запрос, позволяющий получить сведения об успеваемости конкретного студента.
Откройте приложение для работы с базой данных Деканат.
Добавьте в проект новую форму Form6 (FileNewForm).
Дайте новой форме название оценки.
Разместите в модуле данных компонент Query1 (страница BDE) и свяжите его с базой данных: в свойстве DatabaseName укажите созданный вами псевдоним.
Выделите компонент Query1 и запустите конструктор (выберите в контекстном меню пункт SQL Builder). Произведите следующие настройки:
Выберите в выпадающем списке Database базу данных Деканат, в списке table последовательно имена таблиц Marks и Subjects.
В появившейся в рабочем поле таблицs Marks выделите поля Indnumber, Codesubject, Mark. В таблице Subjects выберите поля Codesubject, Namesubject, Semester.
На вкладке Criteria укажите критерий отбора: Marks. Indnumber = 1;
Для упорядочивания записей по семестрам на вкладке Sorting
выберите поле Semester и нажмите кнопку Add.
Для установления соответствия между таблицами на вкладке Joins
установите связь:
Marks. Codesubject = Subjects. Codesubject.
Закройте окно конструктора и подтвердите сохранение изменений.
Выберете свойство SQL компоненты Query1 и просмотрите текст SQL-
запроса.
Добавьте в модуль данных компонент DataSource3 (вкладка DataAccess) и свяжите его с установленным запросом.
Добавьте на форму Form6 компоненты Label1, BDGrid1, BDNavigator1, BitBtn и настройте их в соответствии с рисунком:
В модуле Unit3 формы Form3 в строку Uses Unit2, Unit4; добавьте имя модуля Unit6;
Разместите на форме Form3 кнопку Button, дайте ей имя Оценки и напишите следующий обработчик на событие OnClick:
procedure TForm3.Button1Click(Sender: TObject); var
s1, s2:string; begin
s1:= DataModule2.Table1.Fields[0].AsString; form6.Show;
DataModule2.Query1.SQL[4]:= 'WHERE Marks. Indnumber = '+ s1; datamodule2.Query1.Active:=true;
s2:= DataModule2.Table1.Fields[1].AsString +' '+ DataModule2.Table1.Fields[2].AsString+
' '+DataModule2.Table1.Fields[3].AsString; form6.Label1.Caption:=s2;
end;
Для кнопки BitBtn формы Form6 введите следующий обработчик : procedure TForm6.BitBtn1Click(Sender: TObject);
begin
DataModule2.Query1.Active:=false; Form6.Close;
end;
Запустите приложение и проверьте выполнения запроса. 17.Сохраните проект.
Достарыңызбен бөлісу: |