Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задания практика 3 часть консоль БД MySQLпо ПР ТРЗБД_.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.64 Mб
Скачать

Лабораторная работа № 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);

}

}