- •Общие указания к выполнению практических работ
- •Критерии оценки:
- •Практическая работа № 1
- •Указания по выполнению практической работы Возможности монитора MySql
- •Задание 1
- •Описание учебного примера
- •Удаление таблиц
- •Задание 1
- •Контрольные вопросы
- •Практическая работа №2
- •Указания по выполнению практической работы Команда alter table
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа № 3
- •Указания по выполнению практической работы
- •Задание 1
- •Задание 1
- •Задание 2
- •1. Создание eer-диаграммы
- •Контрольные вопросы
- •Лабораторная работа № 7
- •Указания по выполнению лабораторной работы
- •Для компонента adoConnection1 устанавливаем следующие свойства
- •Простая выборка
- •Использование вычисляемых полей
- •Логические связки and и or
- •Выборка с упорядочением
- •Контрольные вопросы
- •Практическая работа № 11
- •Указания к выполнению лабораторной работы Запросы к нескольким таблицам
- •Задание1
- •Табличный подзапрос
- •Использование операций in и not in
- •Использование операций some, any и all
- •Использование exists и not exists
- •Задание
- •Контрольные вопросы
- •Лабораторная работа № 14
- •Команда insert
- •Задание 1
- •Команда update
- •Задание 2
- •Команда delete
- •Задание 3
- •Контрольные вопросы
- •Лабораторная работа № 15
- •Задание
- •Задание 2
- •Контрольные вопросы
- •Лабораторная работа № 16
- •Контрольные вопросы
- •Практическая работа № 17
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа № 18
- •Добавление триггера
- •Создание триггера на before update
- •Удаление триггера
- •Список созданных триггеров
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Контрольные вопросы
- •Лабораторная работа № 19
- •Задание 1
- •Задание 2
- •Контрольные вопросы
- •Практическая работа № 20
- •Задание 1
- •Контрольные вопросы
- •Практическая работа № 21
- •Уровни привилегий и пользователи
- •Отмена привилегий и удаление пользователей
- •Задание 1 Работа локально
- •Варианты заданий предметных областей для создания баз данных Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Вариант 22
- •Вариант 23
- •Вариант 24
- •Вариант 25
- •Вариант 26
- •Вариант 27
- •Вариант 28
- •Вариант 29
- •Вариант 30
- •Вариант 31
- •Вариант 32
Лабораторная работа № 15
Тема: «Применение запросов в клиентской части приложения».
Цель работы: Научиться создавать запросы в клиентской части приложения.
Время выполнения: подготовка: 5 мин; выполнение: 165 мин; оформление и сдача: 10 мин; всего: 90 мин.
Указания к выполнению лабораторной работы
Задание
В С++ Builder создайте приложение с представленным ниже интерфейсом.
На каждое из событий введите код.
Unit1.h
private: // User declarations
public: TDate Bday; // User declarations
__fastcall TForm1(TComponent* Owner);
Unit1.cpp
void __fastcall TForm1::Button1Click(TObject *Sender)
{ // поиск студента по фамилии
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT ФИО, Дата_р FROM Студенты WHERE фио= '"+Edit1 -> Text+"';");
ADOQuery1 -> Open();
Label10 -> Caption = "Найденный студент";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{ // Поиск студента по специальности
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT Студенты.ФИО, Студенты.Дата_Р");
ADOQuery1 -> SQL -> Add ("FROM Специальность INNER JOIN Студенты ON Специальность.код_спец = Студенты.код_спец");
ADOQuery1 -> SQL -> Add ("WHERE Специальность.код_спец= "+Edit2-> Text+"; ");
ADOQuery1 -> Open();
AnsiString S= "Студенты Специальности " +Edit2 -> Text;
Label10 -> Caption = S;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{ // Удалить студента по ФИО
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("DELETE FROM Студенты WHERE ФИО = '"+Edit3 -> Text+ "';");
ADOQuery1 -> ExecSQL();
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты;");
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{ //Вставить нового сутдента
Bday=StrToDate(Edit6 -> Text);
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("INSERT INTO Студенты([№ группы], ФИО, Дата_Р, код_спец)");
ADOQuery1 -> SQL -> Add ("Values('"+Edit4 -> Text+"', '"+Edit5 -> Text+"', DateValue('"+FormatDateTime("dd/mm/yyyy",Bday)+"'),"+Edit7 -> Text+");");
ADOQuery1 -> ExecSQL();
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты");
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{ // Изменить данные специальности студента
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("UPDATE Студенты SET код_спец= '"+Edit9 -> Text+"' WHERE ФИО= '"+Edit8 -> Text+"';");
ADOQuery1 -> ExecSQL();
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты WHERE ФИО= '"+Edit8 -> Text+"';");
ADOQuery1 -> Open();
Label10 -> Caption = "Переведенный студент";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{ // Вставка специальности с параметром
ADOQuery1 -> Close();
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("INSERT INTO Специальность (код_спец, название) Values (:К_с,:Naz);");
ADOQuery1 -> Parameters -> ParamByName("К_с") -> Value = Edit10 -> Text;
ADOQuery1 -> Parameters -> ParamByName ("Naz") -> Value = Edit11 -> Text;
ADOQuery1 -> ExecSQL();
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Специальность;");
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{ // поиск студента по ФИО с параметром
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT ФИО FROM Студенты WHERE ФИО = :fio");
ADOQuery1 -> Parameters -> ParamByName ("fio") -> Value = Edit12 -> Text;
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{ // Поиск студента по специальности с параметром
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT Студенты.ФИО, Студенты.Дата_Р");
ADOQuery1 -> SQL -> Add ("FROM Специальность INNER JOIN Студенты ON Специальность.код_спец = Студенты.код_спец");
ADOQuery1 -> SQL -> Add ("WHERE Специальность.код_спец = :c_spec");
ADOQuery1 -> Parameters -> ParamByName ("c_spec") -> Value = Edit13 -> Text;
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button9Click(TObject *Sender)
{ // Удалить студента по ФИО с параметром
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("DELETE FROM Студенты WHERE ФИО = :FIO");
ADOQuery1 -> Parameters -> ParamByName ("FIO") -> Value = Edit14 -> Text;
ADOQuery1 -> ExecSQL();
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты;");
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button10Click(TObject *Sender)
{ // Изменить данные специальности студента с параметром
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("UPDATE Студенты SET код_спец= :cod_s WHERE ФИО= :fIo;");
ADOQuery1 -> Parameters -> ParamByName ("cod_s") -> Value = Edit16 -> Text;
ADOQuery1 -> Parameters -> ParamByName ("fIo") -> Value = Edit15 -> Text;
ADOQuery1 -> ExecSQL();
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты WHERE ФИО= :fIo;");
ADOQuery1 -> Parameters -> ParamByName ("fIo") -> Value = Edit15 -> Text;
ADOQuery1 -> Open();
Label10 -> Caption = "Переведенный студент";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button11Click(TObject *Sender)
{ //Вставить нового сутдента с параметрами
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("INSERT INTO Студенты([№ группы], ФИО, Дата_Р, код_спец)");
ADOQuery1 -> SQL -> Add ("Values(:gr, :Fam, :data,:cod_specal)");
ADOQuery1 -> Parameters -> ParamByName ("gr") -> Value = Edit17 -> Text;
ADOQuery1 -> Parameters -> ParamByName ("Fam") -> Value = Edit18 -> Text;
ADOQuery1 -> Parameters -> ParamByName ("data") -> Value = StrToDate (Edit19 -> Text);
ADOQuery1 -> Parameters -> ParamByName ("cod_specal") -> Value = Edit20 -> Text;
ADOQuery1 -> ExecSQL();
ADOQuery1 -> Active = false;
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты");
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
// формирование ComboBox Change
{
ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты WHERE [№ группы] = :P_g");
ADOQuery1-> Parameters-> ParamByName("P_g") -> Value = ComboBox1 -> Items -> Strings[ComboBox1 -> ItemIndex];
ADOQuery1 -> Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
// формирование ComboBox
{ ADOQuery1 -> SQL -> Clear();
ADOQuery1 -> SQL -> Add ("SELECT * FROM Студенты");
ADOQuery1 -> Open();
while (!ADOQuery1->Eof)
{
ComboBox1 -> Items ->Add (ADOQuery1-> FieldByName("№ группы") -> AsString);
ADOQuery1 -> Next();
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect,
int DataCol, TColumn *Column, TGridDrawState State)
//полоска выделения строки таблицы красным цветом
{
// в св-ве DBGrid Установить dbRowSelected = true (Properties -> options -> dbRowSelected = true)
if (State.Contains(Grids::gdSelected))
{
DBGrid1->Canvas->Brush->Color=clRed;
DBGrid1->DefaultDrawColumnCell (Rect, DataCol, Column, State);
}
}
