Московский государственный университет путей сообщения (МИИТ)
Кафедра «Автоматизированные системы управления»
Курсовая работа по дисциплине
«Управление данными»
Вариант 4а.
Выполнила:
ст. гр. УИС-311
Проверил:
Москва 2013
Задание:
Отобразить заданную предметную область, описанную вербально, в реляционную БД, отношения которой должны находиться по крайней мере в БКНФ. Организовать операции ввода, редактирования и удаления информации из БД. Обеспечить ответ на заданные запросы и печать заданных форм отчёта.
4. Деканат (списочный состав) Ф.И.О. студента, № зачётной книжки (студенческого билета), группа, дата поступления, дата выбытия, № приказа, вид приказа, дата приказа, основание, примечания. 1. Студент может переходить из одной группы в другую.
2. Виды приказов - о зачислении, о предоставлении места в общежитии, о предоставлении академического отпуска, об отчислении, об окончании и т.д.
3. Студент может приступить к занятиям в группе раньше даты выхода приказа.
4. При восстановлении № студенческого билета и зачётной книжки сохраняется.
а)
1. Процент отчисления по курсам.
2. Процент отчисления по годам.
3. Список студентов, бравших академический отпуск более 2 раз.
4. Дополнительно.
5. Дополнительно.
а)
1. Приказы о зачислении.
2. Приказы о предоставлении академического отпуска.
Дополнительно:
4а
Запросы:
1) Общее число студентов, поступивших в выбранном году, с группировкой по специальности
2)Список студентов, проживающих в общежитии в течение последних 3 лет.
ER-Диаграмма:
Создание таблиц и их заполнение:
CREATE TABLE Группы
(
Номер_группы VARCHAR2(20) NOT NULL ,
Специальность VARCHAR2(50) NOT NULL
);
ALTER TABLE Группы
ADD CONSTRAINT XPKГруппы PRIMARY KEY (Номер_группы);
CREATE TABLE Курс
(
ID_курса INTEGER NOT NULL ,
Номер_курса INTEGER NOT NULL
);
ALTER TABLE Курс
ADD CONSTRAINT XPKКурс PRIMARY KEY (ID_курса);
CREATE TABLE Обучение
(
Номер_группы VARCHAR2(20) NOT NULL ,
N_Зач_Книжки INTEGER NOT NULL ,
ID_курса INTEGER NOT NULL ,
Дата_поступл DATE NOT NULL ,
Дата_выбытия CHAR(18)
);
ALTER TABLE Обучение
ADD CONSTRAINT XPKОбучение PRIMARY KEY (Номер_группы,N_Зач_Книжки,ID_курса);
CREATE TABLE Приказы
(
N_Зач_Книжки INTEGER NOT NULL ,
N_приказа INTEGER NOT NULL ,
Вид_приказа VARCHAR2(20) NOT NULL ,
Дата_приказа DATE NOT NULL ,
Основания VARCHAR2(20) NULL ,
Примечания VARCHAR2(20) NULL
);
ALTER TABLE Приказы
ADD CONSTRAINT XPKПриказы PRIMARY KEY (N_приказа,N_Зач_Книжки);
CREATE TABLE Студенты
(
N_Зач_Книжки INTEGER NOT NULL ,
Фамилия VARCHAR2(20) NOT NULL ,
Имя VARCHAR2(20) NOT NULL ,
Отчество VARCHAR2(20) NOT NULL
);
ALTER TABLE Студенты
ADD CONSTRAINT XPKСтуденты PRIMARY KEY (N_Зач_Книжки);
ALTER TABLE Обучение
ADD (CONSTRAINT R_1 FOREIGN KEY (Номер_группы) REFERENCES Группы(Номер_группы));
ALTER TABLE Обучение
ADD (CONSTRAINT R_2 FOREIGN KEY (N_Зач_Книжки) REFERENCES Студенты(N_Зач_Книжки));
ALTER TABLE Обучение
ADD (CONSTRAINT R_3 FOREIGN KEY (ID_курса) REFERENCES Курс(ID_курса));
ALTER TABLE Приказы
ADD (CONSTRAINT R_4 FOREIGN KEY (N_Зач_Книжки) REFERENCES Студенты(N_Зач_Книжки));
insertinto Группы values (УИС-111, Информационные системы и технологии);
insertinto Группы values (УИС-211, Информационные системы и технологии);
insertinto Группы values (УИС-311, Информационные системы и технологии);
insertinto Группы values (УИС-411, Информационные системы и технологии);
insertinto Группы values (УИС-511, Информационные системы и технологии);
insertinto Группы values (УАИ-111, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-211, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-311, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-411, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УАИ-511, Автоматизированные системы обработки информации и управления);
insertinto Группы values (УПП-111, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-211, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-311, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-411, Организация и управление перевозоками на транспорте);
insertinto Группы values (УПП-511, Организация и управление перевозоками на транспорте);
insert into Курс values (1, 1);
insert into Курс values (2, 2);
insert into Курс values (3, 3);
insert into Курс values (4, 4);
insert into Курс values (5, 5);
insert into Студенты values (001, Сидоров, Михаил, Петрович);
insert into Студенты values (002, Мишина, Анастасия, Сергеевна);
insert into Студенты values (003, Петров, Антон, Юрьевич);
insert into Студенты values (004, Малявина, Альбина, Ренатовна);
insertinto Студенты values (005, Красильников, Сергей, Сергеевич);
insertinto Студенты values (006, Ефимов, Владимир, Андреевич);
insertinto Студенты values (007, Аксенова, Оксана, Михайловна);
insertinto Студенты values (008, Иванов, Олег, Николаевич);
insertinto Студенты values (009, Смирнова, Екатерина, Сергеевна);
insertinto Студенты values (010, Калясина, Дарья, Михайловна);
insertinto Студенты values (011, Мошкин, Данил, Владимирович);
insertinto Студенты values (012, Суслов, Владислав, Никонорович);
insertinto Студенты values (013, Лещев, Игорь, Андреевич);
insertinto Студенты values (014, Шубко, Марина, Эдуардовна);
insertinto Студенты values (015, Элькин, Семен, Семенович);
insertinto Студенты values (016, Семенов, Александр, Васильевич);
insertinto Студенты values (017, Ткачева, Ольга, Сергеевна);
insertinto Студенты values (018, Тургунова, Эльмира, Женишбековна);
insertinto Студенты values (019, Кузьменко, Екатерина, Сергеевна);
insertinto Студенты values (020, Овсянкина, Яна, Юрьевна);
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (001, 001, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (002, 002, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (003, 003, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (004, 004, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (005, 005, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (006, 006, О зачислении, to_date(10.08.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (007, 007, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (017, 017, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (018, 018, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (019, 019, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (020, 020, О зачислении, to_date(10.08.2010,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 008, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (009, 009, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (010, 010, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (011, 011, О зачислении, to_date(10.08.2009,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (012, 012, О зачислении, to_date(10.08.2009,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (013, 013, О зачислении, to_date(10.08.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (014, 014, О зачислении, to_date(10.08.2008,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (015, 015, О зачислении, to_date(10.08.2008,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (016, 016, О зачислении, to_date(10.08.2007,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (016, 021, Об окончании, to_date(10.06.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 022, О предоставлении академического отпуска, to_date(10.11.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 027, О предоставлении академического отпуска, to_date(10.02.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (009, 023, Об отчислении, to_date(10.03.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (008, 024, Об отчислении, to_date(10.03.2012,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (017, 025, О предоставлении места в общежитии, to_date(10.03.2011,DD.MM.YYYY));
insertinto Приказы (N_ЗАЧ_КНИЖКИ, N_ПРИКАЗА, ВИД_ПРИКАЗА, ДАТА_ПРИКАЗА) values (018, 026, О предоставлении места в общежитии, to_date(10.03.2010,DD.MM.YYYY));
insert into Обучение values (УИС-111, 001, 1, to_date (01.09.2012,DD.MM.YYYY), to_date (01.07.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УИС-111, 002, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-111, 003, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-111, 004, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-111, 005, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-111, 006, 1, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение values (УПП-111, 008, 1, to_date (01.09.2011,DD.MM.YYYY), to_date (10.11.2012,DD.MM.YYYY));
insert into Обучение values (УАИ-111, 009, 1, to_date (01.09.2011,DD.MM.YYYY), to_date (01.03.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 017, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 018, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 019, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-311, 020, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УИС-311, 007, 3, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение values (УПП-111, 010, 1, to_date(01.09.2011,DD.MM.YYYY), to_date(31.08.2012,DD.MM.YYYY));
insert into Обучение values (УАИ-111, 013, 1, to_date(01.09.2011,DD.MM.YYYY), to_date(31.08.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-211, 010, 2, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УПП-411, 011, 4, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-411, 012, 4, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-211, 013, 2, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УИС-511, 014, 5, to_date(01.09.2012,DD.MM.YYYY));
insert into Обучение (НОМЕР_ГРУППЫ, N_ЗАЧ_КНИЖКИ, ID_КУРСА, ДАТА_ПОСТУПЛ) values (УАИ-511, 015, 5, to_date(01.09.2012,DD.MM.YYYY));
Триггеры
create sequence s1
start with 50
maxvalue 10000
minvalue 50
nocycle
order;
CREATE OR REPLACE TRIGGER Trig1
BEFORE Insert
ON приказы FOR EACH ROW
declarenew_n integer;
begin
select s1.nextval into new_n from dual;
:new.n_приказа:=new_n;
end Trig1;
create sequence s2
start with 50
maxvalue 10000
minvalue 50
nocycle
order;
CREATE OR REPLACE TRIGGER Trig2
BEFORE Insert
ON студенты FOR EACH ROW
declarenew_n integer;
begin
select s2.nextval into new_n from dual;
:new.n_зач_книжки:=new_n;
end Trig2;
create sequence s3
start with 6
maxvalue 10000
minvalue 6
nocycle
order;
CREATE OR REPLACE TRIGGER Trig3
BEFORE Insert
ON курс FOR EACH ROW
declarenew_n integer;
begin
select s3.nextval into new_n from dual;
:new.id_курса:=new_n;
end Trig3;
select * fromuser_errors;
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Unit2, ExtCtrls, ComCtrls, StdCtrls, Grids, DBGrids;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Splitter1: TSplitter;
Splitter2: TSplitter;
DBGrid1: TDBGrid;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
Panel4: TPanel;
Panel5: TPanel;
Button5: TButton;
Edit3: TEdit;
DBGrid2: TDBGrid;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button11: TButton;
Button6: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
DBGrid3: TDBGrid;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
Splitter3: TSplitter;
Splitter4: TSplitter;
Button15: TButton;
Button16: TButton;
Button17: TButton;
Button18: TButton;
Edit5: TEdit;
Button19: TButton;
Button20: TButton;
Button21: TButton;
Edit6: TEdit;
Edit7: TEdit;
Label1: TLabel;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
Label5: TLabel;
Panel9: TPanel;
Panel10: TPanel;
Panel11: TPanel;
DBGrid4: TDBGrid;
Edit4: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button22: TButton;
Button23: TButton;
Button24: TButton;
Button25: TButton;
Button26: TButton;
Button27: TButton;
Button28: TButton;
Edit10: TEdit;
Edit11: TEdit;
Label9: TLabel;
Label10: TLabel;
Panel12: TPanel;
Panel13: TPanel;
Panel14: TPanel;
DBGrid5: TDBGrid;
Button29: TButton;
Button30: TButton;
Button31: TButton;
Button32: TButton;
Splitter5: TSplitter;
Splitter6: TSplitter;
Splitter7: TSplitter;
Splitter8: TSplitter;
Button33: TButton;
Button34: TButton;
Button35: TButton;
Edit12: TEdit;
Label11: TLabel;
Panel15: TPanel;
Panel16: TPanel;
Panel17: TPanel;
Splitter9: TSplitter;
Splitter10: TSplitter;
DBGrid6: TDBGrid;
Button36: TButton;
Button37: TButton;
Button38: TButton;
Button39: TButton;
Button40: TButton;
Button41: TButton;
Button42: TButton;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
procedure Button17Click(Sender: TObject);
procedure Button18Click(Sender: TObject);
procedure Button19Click(Sender: TObject);
procedure Button21Click(Sender: TObject);
procedure Button20Click(Sender: TObject);
procedure Button23Click(Sender: TObject);
procedure Button24Click(Sender: TObject);
procedure Button25Click(Sender: TObject);
procedure Button26Click(Sender: TObject);
procedure Button27Click(Sender: TObject);
procedure Button28Click(Sender: TObject);
procedure Button22Click(Sender: TObject);
procedure Button29Click(Sender: TObject);
procedure Button30Click(Sender: TObject);
procedure Button31Click(Sender: TObject);
procedure Button32Click(Sender: TObject);
procedure Button33Click(Sender: TObject);
procedure Button34Click(Sender: TObject);
procedure Button35Click(Sender: TObject);
procedure Button36Click(Sender: TObject);
procedure Button37Click(Sender: TObject);
procedure Button38Click(Sender: TObject);
procedure Button39Click(Sender: TObject);
procedure Button40Click(Sender: TObject);
procedure Button41Click(Sender: TObject);
procedure Button42Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.next;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DataModule2.ADOTable1.Insert;
DataModule2.ADOTable1.FieldByName(íîìåð_ãðóïïû).AsString:=Edit1.Text;
DataModule2.ADOTable1.FieldByName(Ñïåöèàëüíîñòü).AsString:=Edit2.Text;
DataModule2.ADOTable1.Post;
DataModule2.ADOTable1.Active:=false;
DataModule2.ADOTable1.Active:=true;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
DataModule2.ADOTable1.Delete;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
DataModule2.ADOTable1.Edit;
DataModule2.ADOTable1.Post;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select ñïåöèàëüíîñòü, count(ïåðâîêóðñíèêè.n_çà÷_êíèæêè) as êîëè÷åñòâî from (select n_çà÷_êíèæêè, ñïåöèàëüíîñòü from îáó÷åíèå, ãðóïïû, (select id_êóðñà from êóðñ where íîìåð_êóðñà=1) êóðñ_1);
DataModule2.q1.SQL.Add(where îáó÷åíèå.íîìåð_ãðóïïû=ãðóïïû.íîìåð_ãðóïïû and îáó÷åíèå.id_êóðñà=êóðñ_1.id_êóðñà)ïåðâîêóðñíèêè,(select n_çà÷_êíèæêè);
DataModule2.q1.SQL.Add(from (select n_çà÷_êíèæêè, n_ïðèêàçà, extract (year from äàòà_ïðèêàçà)as ãîä from ïðèêàçû where âèä_ïðèêàçà=Î çà÷èñëåíèè) where ãîä=+Edit3.Text+)çà÷èñëåííûå);
DataModule2.q1.SQL.Add(where ïåðâîêóðñíèêè.n_çà÷_êíèæêè=çà÷èñëåííûå.n_çà÷_êíèæêè group by ñïåöèàëüíîñòü);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select îò÷èñë_ïî_êóðñàì.id_êóðñà, îò÷èñë_ïî_êóðñàì.íîìåð_êóðñà, îò÷èñë_ïî_êóðñàì.êîëè÷åñòâî/êóðñ_ñòóäåíòû.êîëè÷åñòâî*100 as ïðîöåíò+
from (select êóðñ_ñòóäåíò.id_êóðñà, êóðñ_ñòóäåíò.íîìåð_êóðñà, count(n_ïðèêàçà)as êîëè÷åñòâî+
from (select êóðñ.id_êóðñà, êóðñ.íîìåð_êóðñà, id_êóðñà_ñòóä.n_çà÷_êíèæêè+
fromêóðñ, (select ñòóäåíòû.n_çà÷_êíèæêè, id_êóðñà+
fromñòóäåíòû, îáó÷åíèå+
where ñòóäåíòû.n_çà÷_êíèæêè=îáó÷åíèå.n_çà÷_êíèæêè) id_êóðñà_ñòóä+
whereêóðñ.id_êóðñà=id_êóðñà_ñòóä.id_êóðñà)êóðñ_ñòóäåíò,+
(select ñòóäåíòû.n_çà÷_êíèæêè, N_ïðèêàçà+
fromñòóäåíòû, ïðèêàçû+
where ñòóäåíòû.N_çà÷_êíèæêè=ïðèêàçû.N_çà÷_êíèæêè and ïðèêàçû.âèä_ïðèêàçà=Îáîò÷èñëåíèè)îò÷èñëåííûå+
where êóðñ_ñòóäåíò.n_çà÷_êíèæêè=îò÷èñëåííûå.n_çà÷_êíèæêè+
group by êóðñ_ñòóäåíò.id_êóðñà, êóðñ_ñòóäåíò.íîìåð_êóðñà)îò÷èñë_ïî_êóðñàì,+
(select id_êóðñà, count(n_çà÷_êíèæêè)as êîëè÷åñòâî+
fromîáó÷åíèå+
group by id_êóðñà)êóðñ_ñòóäåíòû+
where îò÷èñë_ïî_êóðñàì.id_êóðñà=êóðñ_ñòóäåíòû.id_êóðñà);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select ãîä, count(n_ïðèêàçà)as êîë_âî_îò÷èñë from (select n_ïðèêàçà, extract (year from äàòà_ïðèêàçà)as ãîä from ïðèêàçû where âèä_ïðèêàçà=Îáîò÷èñëåíèè) group by ãîä);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select n_çà÷_êíèæêè from (select n_çà÷_êíèæêè, count(n_ïðèêàçà) as n from ïðèêàçû where âèä_ïðèêàçà=Î ïðåäîñòàâëåíèèàêàäåìè÷åñêîãîîòïóñêà group by n_çà÷_êíèæêè) êîëè÷åñòâî where êîëè÷åñòâî.n>=2);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select ôàìèëèÿ, èìÿ, îò÷åñòâî from ñòóäåíòû, (select n_çà÷_êíèæêè from ïðèêàçû where âèä_ïðèêàçà=Î ïðåäîñòàâëåíèèìåñòà â îáùåæèòèè and sysdate-äàòà_ïðèêàçà>=1095)îáùàæíèêè where ñòóäåíòû.n_çà÷_êíèæêè=îáùàæíèêè.n_çà÷_êíèæêè);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select n_ïðèêàçà, n_çà÷_êíèæêè from ïðèêàçû where âèä_ïðèêàçà=Î çà÷èñëåíèè order by n_ïðèêàçà);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
DataModule2.q1.SQL.Clear;
DataModule2.q1.SQL.Add(select n_ïðèêàçà, n_çà÷_êíèæêè from ïðèêàçû where âèä_ïðèêàçà=Î ïðåäîñòàâëåíèèàêàäåìè÷åñêîãîîòïóñêà order by n_ïðèêàçà);
DataModule2.q1.Active:=true;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Prior;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.Last;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.First;
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.next;
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Prior;
end;
procedure TForm1.Button17Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Last;
end;
procedure TForm1.Button18Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.First;
end;
procedure TForm1.Button19Click(Sender: TObject);
begin
DataModule2.ADOTable2.Insert;
DataModule2.ADOTable2.FieldByName(Ôàìèëèÿ).AsString:=Edit5.Text;
DataModule2.ADOTable2.FieldByName(Èìÿ).AsString:=Edit6.Text;
DataModule2.ADOTable2.FieldByName(Îò÷åñòâî).AsString:=Edit7.Text;
DataModule2.ADOTable2.Post;
DataModule2.ADOTable2.Active:=false;
DataModule2.ADOTable2.Active:=true;
end;
procedure TForm1.Button21Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Edit;
DBGrid3.DataSource.DataSet.Post;
end;
procedure TForm1.Button20Click(Sender: TObject);
begin
DBGrid3.DataSource.DataSet.Delete;
end;
procedure TForm1.Button23Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Prior;
end;
procedure TForm1.Button24Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Last;
end;
procedure TForm1.Button25Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.First;
end;
procedure TForm1.Button26Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Edit;
DBGrid4.DataSource.DataSet.Post;
end;
procedure TForm1.Button27Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.Delete;
end;
procedure TForm1.Button28Click(Sender: TObject);
begin
DataModule2.ADOTable3.Insert;
DataModule2.ADOTable3.FieldByName(N_çà÷_êíèæêè).AsInteger:=StrToInt(Edit4.Text);
DataModule2.ADOTable3.FieldByName(Âèä_ïðèêàçà).AsString:=Edit8.Text;
DataModule2.ADOTable3.FieldByName(Äàòà_ïðèêàçà).AsString:=Edit9.Text;
DataModule2.ADOTable3.FieldByName(Îñíîâàíèÿ).AsString:=Edit10.Text;
DataModule2.ADOTable3.FieldByName(Ïðèìå÷àíèÿ).AsString:=Edit11.Text;
DataModule2.ADOTable3.Post;
DataModule2.ADOTable3.Active:=false;
DataModule2.ADOTable3.Active:=true;
end;
procedure TForm1.Button22Click(Sender: TObject);
begin
DBGrid4.DataSource.DataSet.next;
end;
procedure TForm1.Button29Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.next;
end;
procedure TForm1.Button30Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Prior;
end;
procedure TForm1.Button31Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Last;
end;
procedure TForm1.Button32Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.First;
end;
procedure TForm1.Button33Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Edit;
DBGrid5.DataSource.DataSet.Post;
end;
procedure TForm1.Button34Click(Sender: TObject);
begin
DBGrid5.DataSource.DataSet.Delete;
end;
procedure TForm1.Button35Click(Sender: TObject);
begin
DataModule2.ADOTable4.Insert;
DataModule2.ADOTable4.FieldByName(Íîìåð_êóðñà).AsInteger:=StrToInt(Edit12.Text);
DataModule2.ADOTable4.Post;
DataModule2.ADOTable4.Active:=false;
DataModule2.ADOTable4.Active:=true;
end;
procedure TForm1.Button36Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.next;
end;
procedure TForm1.Button37Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Prior;
end;
procedure TForm1.Button38Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Last;
end;
procedure TForm1.Button39Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.First;
end;
procedure TForm1.Button40Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Edit;
DBGrid6.DataSource.DataSet.Post;
end;
procedure TForm1.Button41Click(Sender: TObject);
begin
DBGrid6.DataSource.DataSet.Delete;
end;
procedure TForm1.Button42Click(Sender: TObject);
begin
DataModule2.ADOTable5.Insert;
DataModule2.ADOTable5.FieldByName(Íîìåð_ãðóïïû).AsString:=Edit13.Text;
DataModule2.ADOTable5.FieldByName(N_çà÷_êíèæêè).AsInteger:=StrToInt(Edit14.Text);
DataModule2.ADOTable5.FieldByName(ID_êóðñà).AsInteger:=StrToInt(Edit15.Text);
DataModule2.ADOTable5.FieldByName(Äàòà_ïîñòóïë).AsString:=Edit16.Text;
DataModule2.ADOTable5.FieldByName(Äàòà_âûáûòèÿ).AsString:=Edit17.Text;
DataModule2.ADOTable5.Post;
DataModule2.ADOTable5.Active:=false;
DataModule2.ADOTable5.Active:=true;
end;
end.
Результат: