Соединение с Delphi
Для соединения БД MySQL с Delphi используются встроенные компоненты Delphi для управления базами данных, такие как ADOConnection для настройки соединения с сервером, ADODataSet и ADOQuery для получения доступа к таблицам, DataSource для реального отображения данных из таблиц, DBGrid для визуального отображения данных таблиц и др.
Заключение
В данной работе были кратко описаны основные характеристики системы управления базами данных. Определены основные классы объектов БД, которые имеют значение при использовании для решения наиболее распространенных задач. В результате выполнения курсового работы создано и протестировано приложение (учет внутриофисных расходов). Проект выполнен в полном объеме в соответствии со всеми требованиями задания.
Основным достоинством созданного приложения является простота и удобство работы, т.е. возможность его использования не квалифицированным пользователем. Также программа проста в инсталляции: нужно всего лишь поместить папку с файлами в любую директорию на жестком диске.
Список использованных источников
Материалы сайта «wikipedia.org», [Электронный ресурс] - http://ru.wikipedia.org/wiki/MySQL
Материалы сайта «joomlovod.ru», [Электронный ресурс] - http://www.joomlovod.ru/xxx/742-opisanie-i-ustanovka-programmy-mysql-.html
Материалы сайта «php.su», [Электронный ресурс] - http://www.php.su/mysql/?info
Материалы сайта «baza-referat.ru», [Электронный ресурс] - http://baza-referat.ru/База_данных_при_мной_комиссии
Материалы сайта «podgoretsky.com», [Электронный ресурс] - http://podgoretsky.com/ftp/Docs/Delphi/Flenov/Bibble/Ch%2014-1
Приложение а
Список SQL запросов
Вывод списка сотрудников отдела:
SELECT otdel.nazv_otdel, sotrud.sotrudniki
FROM sotrud,otdel,otdel_sotrud
WHERE (otdel.id=otdel_sotrud.id_otdel) AND (sotrud.id = otdel_sotrud.id_sotr)
group by otdel_sotrud.id_sotr
Вывод предельной нормы расходов отдела:
SELECT otdel.nazv_otdel,sum(vid_rashodov.pred_norm)
FROM vid_rashodov,otdel
WHERE vid_rashodov.id_otd=otdel.id
group by otdel.id
Вывод суммы расходов отдела:
SELECT otdel.nazv_otdel,sum(rash.summ)
FROM rash,vid_rashodov,otdel
WHERE (vid_rashodov.id_otd=otdel.id) AND (rash.id_vid=vid_rashodov.id)
group by otdel.id
Вывод данных о расходах определенного сотрудника:
SELECT rash.id_sotrud, sotrud.sotrudniki, sum(rash.summ), rash.date, vid_rashodov.nazv_rash
from rash, sotrud,vid_rashodov
where (rash.id_sotrud= sotrud.id) and (vid_rashodov.id=rash.id_vid)
group by rash.id_sotrud
Приложение б
Исходный код форм
Форма «Form1»:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, Unit2, ComCtrls, DBCtrls;
type
TForm1 = class(TForm)
con1: TADOConnection;
ds1: TADODataSet;
ds2: TDataSource;
btn1: TButton;
btn2: TButton;
btn3: TButton;
pgc1: TPageControl;
ts1: TTabSheet;
ts2: TTabSheet;
ts3: TTabSheet;
ts4: TTabSheet;
ds4: TADODataSet;
ts5: TTabSheet;
dbgrd2: TDBGrid;
ds5: TDataSource;
ds6: TADODataSet;
dbgrd3: TDBGrid;
ds7: TDataSource;
ds8: TADODataSet;
dbgrd4: TDBGrid;
ds9: TDataSource;
ds10: TADODataSet;
dbgrd5: TDBGrid;
ds11: TADODataSet;
ds12: TDataSource;
ts6: TTabSheet;
pgc2: TPageControl;
ts7: TTabSheet;
ts8: TTabSheet;
ts9: TTabSheet;
dbgrd6: TDBGrid;
ds13: TADODataSet;
ds14: TADODataSet;
ds15: TADODataSet;
ds16: TADODataSet;
ds17: TDataSource;
ds18: TDataSource;
ds19: TDataSource;
ds20: TDataSource;
dbgrd7: TDBGrid;
dbgrd8: TDBGrid;
ts10: TTabSheet;
dbgrd9: TDBGrid;
dblkcbbsotrudniki: TDBLookupComboBox;
dblkcbb1: TDBLookupComboBox;
dblkcbb2: TDBLookupComboBox;
dblkcbb3: TDBLookupComboBox;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
procedure dblkcbbsotrudnikiCloseUp(Sender: TObject);
procedure dblkcbb1CloseUp(Sender: TObject);
procedure dblkcbb2CloseUp(Sender: TObject);
procedure dblkcbb3CloseUp(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit3, Unit4, Unit5, Unit6;
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
begin
if pgc1.ActivePageIndex = 0 then
begin
Form1.ds1.Insert;
if Form2.ShowModal = MrOk then
Form1.ds1.Post;
end;
if pgc1.ActivePageIndex = 1 then
begin
Form1.ds4.Insert;
if Form3.ShowModal = MrOk then
Form1.ds4.Post;
end;
if pgc1.ActivePageIndex = 2 then
begin
Form1.ds6.Insert;
if Form4.ShowModal = MrOk then
Form1.ds6.Post;
end;
if pgc1.ActivePageIndex = 3 then
begin
Form1.ds8.Insert;
if Form5.ShowModal = MrOk then
Form1.ds8.Post;
end;
if pgc1.ActivePageIndex = 4 then
begin
Form1.ds10.Insert;
if Form6.ShowModal = MrOk then
Form1.ds10.Post;
end;
end;
procedure TForm1.btn2Click(Sender: TObject);
begin
if pgc1.ActivePageIndex = 0 then
begin
ds1.Delete;
end;
if pgc1.ActivePageIndex = 1 then
begin
ds4.Delete;
end;
if pgc1.ActivePageIndex = 2 then
begin
ds6.Delete;
end;
if pgc1.ActivePageIndex = 3 then
begin
ds8.Delete;
end;
if pgc1.ActivePageIndex = 4 then
begin
ds10.Delete;
end;
end;
procedure TForm1.btn3Click(Sender: TObject);
begin
if pgc1.ActivePageIndex = 0 then
begin
Form2.Show;
end;
if pgc1.ActivePageIndex = 1 then
begin
Form3.Show;
end;
if pgc1.ActivePageIndex = 2 then
begin
Form4.Show;
end;
if pgc1.ActivePageIndex = 3 then
begin
Form5.Show;
end;
if pgc1.ActivePageIndex = 4 then
begin
Form6.Show;
end;
end;
procedure TForm1.dblkcbbsotrudnikiCloseUp(Sender: TObject);
begin
ds15.Active:=False;
ds15.CommandText:='SELECT rash.id_sotrud, sotrud.sotrudniki, sum(rash.summ), rash.date, vid_rashodov.nazv_rash'+
' from rash, sotrud,vid_rashodov ' +
'where (vid_rashodov.id=rash.id_vid) and (rash.id_sotrud=sotrud.id) and (sotrud.id = ' + IntToStr(dblkcbbsotrudniki.keyvalue) +') '+
'group by rash.id_sotrud';
ds15.Active:=True;
end;
procedure TForm1.dblkcbb1CloseUp(Sender: TObject);
begin
ds11.Active:=False;
ds11.CommandText:='SELECT otdel.nazv_otdel, sotrud.sotrudniki' +
' FROM sotrud,otdel,otdel_sotrud' +
' WHERE (otdel.id=otdel_sotrud.id_otdel) and (sotrud.id = otdel_sotrud.id_sotr) and (otdel.id = ' + IntToStr(dblkcbb1.keyvalue) +') '+
'group by otdel_sotrud.id_sotr';
ds11.Active:=True;
end;
procedure TForm1.dblkcbb2CloseUp(Sender: TObject);
begin
ds14.Active:=False;
ds14.CommandText:='SELECT otdel.nazv_otdel,sum(rash.summ)' +
' FROM rash,vid_rashodov,otdel' +
' WHERE (vid_rashodov.id_otd=otdel.id) AND (rash.id_vid=vid_rashodov.id) AND (otdel.id = ' + IntToStr(dblkcbb2.keyvalue) +') '+
'group by otdel.id';
ds14.Active:=True;
end;
procedure TForm1.dblkcbb3CloseUp(Sender: TObject);
begin
ds13.Active:=False;
ds13.CommandText:='SELECT otdel.nazv_otdel,sum(vid_rashodov.pred_norm)' +
' FROM vid_rashodov,otdel' +
' WHERE (vid_rashodov.id_otd=otdel.id) AND (otdel.id = ' + IntToStr(dblkcbb3.keyvalue) +') '+
'group by otdel.id';
ds13.Active:=True;
end;
end.
Форма «Form2»:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Mask, DBCtrls;
type
TForm2 = class(TForm)
btn1: TButton;
btn2: TButton;
ds1: TADODataSet;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
lbl5: TLabel;
dbedtNazv_rash: TDBEdit;
dbedtOpis_rash: TDBEdit;
dbedtPred_norm: TDBEdit;
cbb1: TComboBox;
dblkcbbNazv_otdel: TDBLookupComboBox;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.btn1Click(Sender: TObject);
begin
Form1.ds1.FieldByName('month').AsString := cbb1.Text;
ModalResult := mrOk;
Close;
end;
procedure TForm2.btn2Click(Sender: TObject);
begin
ModalResult := mrCancel;
Close;
end;
end.
Форма «Form3»:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls;
type
TForm3 = class(TForm)
lbl1: TLabel;
dbedtsotrudniki: TDBEdit;
btn1: TButton;
btn2: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm3.btn1Click(Sender: TObject);
begin
ModalResult := mrOk;
Close;
end;
procedure TForm3.btn2Click(Sender: TObject);
begin
ModalResult := mrCancel;
Close;
end;
end.
Форма «Form4»:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls;
type
TForm4 = class(TForm)
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
dbedtsumm: TDBEdit;
dbedtdate: TDBEdit;
btn1: TButton;
btn2: TButton;
dblkcbbsotrudniki: TDBLookupComboBox;
dblkcbbNazv_rash: TDBLookupComboBox;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.btn1Click(Sender: TObject);
begin
ModalResult := mrOk;
Close;
end;
procedure TForm4.btn2Click(Sender: TObject);
begin
ModalResult := mrCancel;
Close;
end;
end.
Форма «Form5»:
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls;
type
TForm5 = class(TForm)
lbl1: TLabel;
lbl2: TLabel;
btn1: TButton;
btn2: TButton;
dblkcbbNazv_otdel: TDBLookupComboBox;
dblkcbbsotrudniki: TDBLookupComboBox;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm5.btn1Click(Sender: TObject);
begin
ModalResult := mrOk;
Close;
end;
procedure TForm5.btn2Click(Sender: TObject);
begin
ModalResult := mrCancel;
Close;
end;
end.
Форма «Form6»:
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls;
type
TForm6 = class(TForm)
lbl1: TLabel;
lbl2: TLabel;
dbedtNazv_otdel: TDBEdit;
dbedtKolvo_sotrud: TDBEdit;
btn1: TButton;
btn2: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm6.btn1Click(Sender: TObject);
begin
ModalResult := mrOk;
Close;
end;
procedure TForm6.btn2Click(Sender: TObject);
begin
ModalResult := mrCancel;
Close;
end;
end.