p align="left">go alter table tblMaterials add constraint FK_TBLMATER_RL_6_TBLGRAFI foreign key (Grafics_id) references tblGrafics (Grafics_id) go alter table tblNPlot add constraint FK_TBLNPLOT_RL_18_TBLORDER foreign key (Order_id) references tblOrder (Order_id) go alter table tblOrder add constraint FK_TBLORDER_RL_19_TBLNPLOT foreign key (NPlot_id) references tblNPlot (NPlot_id) go alter table tblOrder add constraint FK_TBLORDER_RL_3_TBLCHARO foreign key (ChaRoad_id) references tblChaRoad (ChaRoad_id) go alter table tblOrder add constraint FK_TBLORDER_RL_4_TBLCHABU foreign key (ChaBuild_id) references tblChaBuild (ChaBuild_id) go alter table tblReport add constraint FK_TBLREPOR_RL_17_TBLORDER foreign key (Order_id) references tblOrder (Order_id) 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 запити, запити на створення таблиць та зв'язків між ними. Освіжив свої навики в SQL quarry analyzer, SQL Enterprise manager та Power designer. А також написав програму на мові Delphi, яка допомогла б користувачу з легкістю користуватися створеною мною базою даних.
Страницы: 1, 2
|