go
alter table tblWorkers add constraint FK_TBLWORKE_RL_12_TBLBRIGA foreign key (Brigade_id) references tblBrigade (Brigade_id)
go
Виконання запитів
1. Одержати перелік будівельних правлінь або ділянок та їх керівників
select o.buildmanagement, o.nplot_id, n.head
from tblorder as o, tblnplot as n
where o.nplot_id=n.nplot_id
2. Одержати список фахівців інженерно-технічного складу позначеної ділянки або будівельного правління із зазначенням їх посад
select distinct(o.buildmanagement), o.nplot_id, t.engineers, t.technology, t.technics
from tblorder as o, tblnplot as n, tbltech as t
where o.nplot_id=3
3. Одержати перелік об'єктів, що зводяться зазначеним будівельним правлінням або ділянкою, і графіки їхнього зведення
select distinct(o.object), o.buildmanagement, o.nplot_id, g.jobtype, g.termperformance
from tblorder as o, tblgrafics as g
where o.order_id=g.order_id
4. Одержати склад бригад, що працювали (працюють) на будівництві зазначеного об'єкта
select o.object, w.bricklayer, w.concrete, w.handler, w.welders, w.electricity, w.driver, w.locksmiths, w.workers_id
from tblorder as o, tblworkers as w
where o.nplot_id=w.nplot_id
5. Одержати перелік будівельної техніки, наданої зазначеному будівельному правлінню
select o.buildmanagement, m.bulldozers, m.cranes, m.excavator, 3
from tblorder as o, tblmachines as m
where o.nplot_id=3
order by 3
6. Одержати перелік будівельної техніки, виділеної на зазначений об’єкт або тієї, що працювала там упродовж зазначеного періоду часу
select o.object, o.buildmanagement, m.bulldozers, m.cranes, m.excavator, g.termperformance, m.nplot_id
from tblorder as o, tblmachines as m, tblgrafics as g
where o.nplot_id=m.nplot_id and o.order_id=g.order_id and g.TermPerformance<'01.01.2012'
7. Одержати графік і кошторис на будівництво зазначеного об'єкта
select o.object, g.jobtype, g.kyshty
from tblorder as o, tblgrafics as g
where o.order_id=g.order_id
8. Одержати звіт про спорудження зазначеного об’єкта
select o.object, r.jobtype, r.used
from tblorder as o, tblreport as r
where o.order_id=r.order_id and o.object='Дім'
9. Одержати перелік об’єктів, що зводяться у деякому будівельному правлінні або в цілому по організації, та на яких у позначений період часу виконувався зазначений вид будівельнихробіт
select o.object, o.buildmanagement, g.jobtype, g.termperformance from tblorder as o, tblgrafics as g where o.order_id=g.order_id and g.termperformance= 01.01.2012
10. Одержати перелік видів будівельних робіт, по яких мало місце перевищення строків виконання на зазначеній ділянці, будівельному правлінні або в цілому по організації
select o.object, o.BuildManagement, r.jobtype, g.termperformance, r.completion
from tblorder as o, tblreport as r, tblgrafics as g
where o.order_id=g.order_id and o.order_id=r.order_id
and g.termperformance < r.completion and g.jobtype=r.jobtype
11. Одержати перелік будівельних матеріалів, по яких мало місце перевищення кошторису на зазначеній ділянці, будівельному правлінні або в цілому по організації
select o.object, o.BuildManagement, m.materials, g.kyshty, r.used
from tblorder as o, tblmaterials as m, tblgrafics as g, tblreport as r
where o.order_id=g.order_id and o.order_id=r.order_id and g.grafics_id=m.grafics_id and
g.kyshty<r.used and g.jobtype=r.jobtype
12. Одержати перелік видів будівельних робіт, виконаних зазначеною бригадою протягом позначеного періоду часу із вказівкою об'єктів, де ці роботи виконувалися
select o.object, g.jobtype, g.termperformance, b.brigade_id
from tblorder as o, tblgrafics as g, tblbrigade as b
where o.nplot_id=b.nplot_id and o.order_id=g.grafics_id and b.brigade_id=3
13. Одержати перелік бригад, що виконували зазначений вид будівельних робіт протягом позначеного періоду часу із зазначенням об'єктів, де ці роботи виконувалися
select o.object, g.jobtype, b.brigade_id, g.termperformance
from tblorder as o, tblgrafics as g, tblbrigade as b
where o.nplot_id=b.nplot_id and o.order_id=g.grafics_id and g.jobtype='ремонт'
Лістинг програми
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, StdCtrls, Menus, DB, Grids, DBGrids, ADODB;
type TForm1 = class(TForm) ADOConnection1: TADOConnection; ADOConnection2: TADOConnection; ADOTable1: TADOTable; ADOQuery1: TADOQuery; DBGrid1: TDBGrid; DataSource1: TDataSource; DataSource2: TDataSource; MainMenu1: TMainMenu; ComboBox1: TComboBox; DBNavigator1: TDBNavigator; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; File1: TMenuItem; N1: TMenuItem; N2: TMenuItem; Button6: TButton; Button7: TButton; procedure ComboBox1Change(Sender: TObject); procedure N2Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5;
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if (Combobox1.Text='Номер ділянки') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblNPlot';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Характеристика заказу на мости та дороги') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblChaRoad';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Характеристика заказу на житловий будинок') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblChaBuild';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Таблиця що містить інформацію про закази') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblOrder';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Графік зведення обєкта ') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblGrafics';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Звіт виконання роботи') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblReport';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Бригади') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblBrigade ';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Інженерно-технічний персонал') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblTech ';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='будівельна техніка') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblMachines ';form1.ADOTable1.Active:=true;
end;
if (Combobox1.Text='Робітники') then
begin
form1.ADOTable1.Active:=false;
form1.ADOTable1.TableName:='tblWorkers ';form1.ADOTable1.Active:=true;
end;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
close();
end;
procedure TForm1.N1Click(Sender: TObject);
begin ShowMessage('Anisimov Andriy');
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
form5.ShowModal;
if (Form5.modalresult <> 6) then
begin
ShowMessage('Пароль неверный');
end
else
begin
form3.ShowModal;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
form4.ShowModal;
end;
end.
unit Unit2;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg;
type TForm2 = class(TForm) Image1: TImage; Timer1: TTimer; procedure Image1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Image1Click(Sender: TObject);
begin
close;
end;
end.
unit Unit3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, DB, ADODB, Grids, DBGrids;
type TForm3 = class(TForm) Label1: TLabel; DBGrid2: TDBGrid; ADOConnection1: TADOConnection; ADOConnection2: TADOConnection;
ADOTable1: TADOTable; ADOQuery1: TADOQuery; DataSource1: TDataSource; DataSource2: TDataSource; MainMenu1: TMainMenu; File1: TMenuItem; N1: TMenuItem; N2: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Label2: TLabel; Button1: TButton; Memo1: TMemo; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
ADOQuery1.close; {Деактивируем запрос в качестве одной из мер предосторожности }
ADOQuery1.SQL.Clear; {Стираем любой предыдущий запрос}
If Memo1.Lines[0] <> '' {Проверяем на предмет пустого ввода} then
ADOQuery1.SQL.Add(Memo1.Text) {Назначаем свойству SQL текст Memo}
else
begin
messageDlg('Введіть sql запрос', mtError, [mbOK], 0);
exit;
end;
try {перехватчик ошибок}
ADOQuery1.Open; {Выполняем запрос и открываем набор данных}
except {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки}
messageDlg(e.message,mtError,[mbOK],0); {показываем свойство message объекта e}
end;{окончание обработки ошибки}
Memo1.ReadOnly:=false;
end;
procedure TForm3.Button5Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm3.Button4Click(Sender: TObject);
begin
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(SaveDialog1.FileName);
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile(OpenDialog1.FileName)
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
Memo1.ReadOnly:=true;
openDialog1.Filter:='Текстові файли|*.txt';
if OpenDialog1.Execute and FileExists (OpenDialog1.FileName)
then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm3.N2Click(Sender: TObject);
begin
close();
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
ShowMessage('Anisimov Andriy');
end;
end.
unit Unit4;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, DB, ADODB, Grids, DBGrids;
type
TForm4 = class(TForm) Label1: TLabel; DBGrid2: TDBGrid; ADOConnection1: TADOConnection; ADOConnection2: TADOConnection; ADOTable1: TADOTable; ADOQuery1: TADOQuery; DataSource1: TDataSource; DataSource2: TDataSource; MainMenu1: TMainMenu; File1: TMenuItem; N1: TMenuItem; N2: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Label2: TLabel; Button1: TButton; Memo1: TMemo; Button3: TButton; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button3Click(Sender: TObject);
begin
Memo1.ReadOnly:=true;
openDialog1.Filter:='Текстові файли|*.txt';
if OpenDialog1.Execute and FileExists (OpenDialog1.FileName)
then Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
procedure TForm4.Button1Click(Sender: TObject);
begin
ADOQuery1.close; {Деактивируем запрос в качестве одной из мер предосторожности }
ADOQuery1.SQL.Clear; {Стираем любой предыдущий запрос}
If Memo1.Lines[0] <> '' {Проверяем на предмет пустого ввода} then
ADOQuery1.SQL.Add(Memo1.Text) {Назначаем свойству SQL текст Memo}
else
begin
messageDlg('Введіть sql запрос', mtError, [mbOK], 0);
exit;
end;
try {перехватчик ошибок}
ADOQuery1.Open; {Выполняем запрос и открываем набор данных}
except {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки}
messageDlg(e.message,mtError,[mbOK],0); {показываем свойство message объекта e}
end;{окончание обработки ошибки}
Memo1.ReadOnly:=false;
end;
procedure TForm4.N2Click(Sender: TObject);
begin
close();
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
ShowMessage('Anisimov Andriy');
end;
end.
unit Unit5;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm5 = class(TForm) Button1: TButton; Edit1: TEdit; procedure oK(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public { Public declarations } end;
var Form5: TForm5;
implementation
{$R *.dfm}
procedure TForm5.oK(Sender: TObject);
begin
if (Edit1.Text = '0000') then ModalResult:=6;
close;
end;
procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (Edit1.Text = '0000') then ModalResult:=6;
end;
end.
Висновок
При виконанні курсової роботи я пригадав як створювати: базу даних, концептуальну та фізичну модель БД, SQL запити, запити на створення таблиць та зв’язків між ними. Освіжив свої навики в SQLquarryanalyzer, SQL Enterprise manager та Powerdesigner. А також написав програму на мові Delphi, яка допомогла б користувачу з легкістю користуватися створеною мною базою даних.