Автор работы: Пользователь скрыл имя, 28 Декабря 2014 в 23:37, курсовая работа
База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Таблицу можно создать, воспользовавшись входящей в состав Delphi утилитой Borland Database Desktop или организовав SQL-запрос к серверу базы данных.
Для тестирования приложения выполним требуемые в качестве задания операции, а именно: добавление, удаление и поиск записей. В таблицу «Сотрудники» добавим запись. Результат можно увидеть на рисунке 2.4.1.
Рисунок 2.4.1 – Добавление записи
Теперь удалим любую запись, например, только что созданную. Результат выполнения данной операции представлен на рисунке 2.4.2.
Рисунок 2.4.2 – Удаление записи
Теперь произведём поиск по заданному критерию. Будем осуществлять поиск записи по номеру. В таблице «Подразделения» также отражена работа вычисляемых полей. Результаты поиска представлены на рисунке 2.4.3.
Рисунок 2.4.3 – Поиск по заданному критерию
Теперь рассмотрим сортировки. К примеру, для таблицы «Сотрудники» отсортируем поля по возрастанию. Результат показан на рисунке 2.4.4.
Рисунок 2.4.4 – Сортировка
Таким образом, мы убедились, что все функции, указанные в задании к курсовому проекту выполнены и работают корректно.
Главное окно программы изображено на рисунке 2.5.1. В окне видны три таблицы. Для добавления и удаления новых данных в таблицы используем DBNavigator. Для обеспечения удобства работы на форме располагаются кнопки, обеспечивающие поиск данных, обновление таблиц, сортировки и закрытие приложения.
Рисунок 2.5.1 – Главное окно программы
При нажатии кнопки «Поиск» появляется новая форма, представленная на рисунке 2.5.2, на которой можно выбрать критерий поиска.
Рисунок 2.5.2 – Форма для поиска
Для осуществления поиска выбираем критерий в выпадающем списке. В поле для запроса вводим информацию, если данные введены неверно, появляется сообщение об ошибке. К примеру, осуществим поиск по критерию табельный номер. Способ заполнения формы и результат представлены соответственно на рисунках 2.5.3-2.5.4.
Рисунок 2.5.3 – Форма для поиска по заданному критерию
Рисунок 2.5.4 – Результат поиска
Также можно получить исходные данные по трём таблицам. Для этого необходимо нажать на кнопку «Обновить», расположенную на форме.
Для выполнения сортировки в таблице «Рабочие места» установим переключатели как показано на рисунке 2.5.5 и нажмём кнопку «Ок».
Рисунок 2.5.5 – Критерии сортировки
Результат сортировки представлен на рисунке 2.5.6.
Рисунок 2.5.6 – Результат сортировки
Данный курсовой проект является актуальным и отвечает предъявленным к нему требованиям. Был разработан и написан, на языке программирования Borland Delphi 7, с использованием баз данных, программа, позволяющая осуществить поиск в имеющихся таблицах по заданному критерию, сортировку и осуществлять внесение изменений и добавление данных по мере необходимости.
Примечание: электронный вариант программы находится на приложенном к пояснительной записке диске в папке под именем «Приложение», базы данных в папке под именем «БД Отдел кадров», а электронный вариант пояснительной записки – под именем Записка.doc. Для открытия и запуска приложения необходимо в Delphi в меню выбрать DataBase/ Explorer и в появившемся диалоге указать псевдоним DBCadr и путь к файлу с базой данных, сохранить изменения. Далее Delphi/ File/open/…и выбираем в папку под именем «Приложение» на носителе.
unit BD;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, XPMan,
Buttons;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Table1: TTable;
Table1TabelNumber: TIntegerField;
Table1Fam: TStringField;
Table1Name: TStringField;
Table1Otc: TStringField;
Table1Birthday: TDateField;
Table1Adres: TStringField;
StaticText1: TStaticText;
StaticText2: TStaticText;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
Table2: TTable;
StaticText3: TStaticText;
Table2PodrazName: TStringField;
Table2TabelNumber1: TIntegerField;
Table2MNumber1: TIntegerField;
StaticText4: TStaticText;
StaticText5: TStaticText;
DataSource3: TDataSource;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
Table3: TTable;
StaticText6: TStaticText;
StaticText7: TStaticText;
Table3MNumber: TIntegerField;
Table3Doljnost: TStringField;
Table3Oklad: TCurrencyField;
GroupBox1: TGroupBox;
RadioGroup1: TRadioGroup;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
GroupBox2: TGroupBox;
RadioGroup3: TRadioGroup;
RadioButton6: TRadioButton;
RadioButton8: TRadioButton;
RadioButton7: TRadioButton;
RadioButton11: TRadioButton;
GroupBox3: TGroupBox;
RadioGroup5: TRadioGroup;
RadioButton13: TRadioButton;
RadioButton17: TRadioButton;
RadioButton12: TRadioButton;
XPManifest1: TXPManifest;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
GroupBox4: TGroupBox;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
GroupBox5: TGroupBox;
RadioButton9: TRadioButton;
RadioButton10: TRadioButton;
GroupBox6: TGroupBox;
RadioButton14: TRadioButton;
RadioButton15: TRadioButton;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
Query1: TQuery;
Query1PodrazName: TStringField;
Query1TabelNumber1: TIntegerField;
Query1MNumber1: TIntegerField;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Table3Nadbavka: TFloatField;
Table3Sum: TCurrencyField;
Table2NumberPodraz: TIntegerField;
Query1NumberPodraz: TIntegerField;
Table1Tel: TStringField;
procedure FormActivate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure RadioButton11Click(Sender: TObject);
procedure RadioButton17Click(Sender: TObject);
procedure RadioButton12Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton8Click(Sender: TObject);
procedure RadioButton13Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure Table3CalcFields(DataSet: TDataSet);
procedure Table1BeforeDelete(DataSet: TDataSet);
procedure Table3BeforeDelete(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses BDFind;
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
RadioButton3.Checked:=True;
RadioButton8.Checked:=True;
RadioButton13.Checked:=True;
RadioButton4.Checked:=True;
RadioButton9.Checked:=True;
RadioButton14.Checked:=True;
RadioButton4.Enabled:=False;
RadioButton5.Enabled:=False;
RadioButton9.Enabled:=False;
RadioButton10.Enabled:=False;
RadioButton14.Enabled:=False;
RadioButton15.Enabled:=False;
BitBtn7.Enabled:=False;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
label l;
var SQLData: String;
begin
RadioButton3.Checked:=True;
RadioButton8.Checked:=True;
RadioButton13.Checked:=True;
RadioButton1.Enabled:=False;
RadioButton2.Enabled:=False;
RadioButton3.Enabled:=False;
RadioButton7.Enabled:=False;
RadioButton6.Enabled:=False;
RadioButton11.Enabled:=False;
RadioButton8.Enabled:=False;
RadioButton17.Enabled:=False;
RadioButton12.Enabled:=False;
RadioButton13.Enabled:=False;
l: Form2.ShowModal;
SQLData:=Form2.Edit1.Text;
If Form2.Edit1.Text = '' Then Begin
MessageDlg('Не введены данные для поиска!', mtWarning, [mbOK], 0); Goto l; end;
If Form2.ComboBox1.ItemIndex = 0 Then Begin
With Query1 Do Begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM ":DBCadr:Podrarzel.db" WHERE TabelNumber1 = "'+SQLData+'" Order by TabelNumber1');
Open; end;
If Query1.RecordCount <> 0 Then Begin
DataSource2.DataSet:=Query1;
Table1.MasterSource:=
Table1.MasterFields:='
Table3.MasterSource:=
Table3.MasterFields:='
DBGrid1.ReadOnly:=True;
DBGrid2.ReadOnly:=True;
DBGrid3.ReadOnly:=True;
DBNavigator1.Enabled:=False;
DBNavigator3.Enabled:=False;
end;
If Query1.RecordCount = 0 Then Begin
DataSource2.DataSet:=Table2;
MessageDlg('Данные не найдены!', mtInformation, [mbOK], 0);
Table1.MasterSource:=nil;
Table3.MasterSource:=nil;
RadioButton1.Enabled:=True;
RadioButton2.Enabled:=True;
RadioButton3.Enabled:=True;
RadioButton7.Enabled:=True;
RadioButton6.Enabled:=True;
RadioButton11.Enabled:=True;
RadioButton8.Enabled:=True;
RadioButton17.Enabled:=True;
RadioButton12.Enabled:=True;
RadioButton13.Enabled:=True;
end; end;
If Form2.ComboBox1.ItemIndex = 1 Then Begin
With Query1 Do Begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM ":DBCadr:Podrarzel.db" WHERE MNumber1 = "'+SQLData+'" Order by MNumber1');
Open; end;
If Query1.RecordCount <> 0 Then Begin
DataSource2.DataSet:=Query1;
Table1.MasterSource:=
Table1.MasterFields:='
Table3.MasterSource:=
Table3.MasterFields:='
DBGrid1.ReadOnly:=True;
DBGrid2.ReadOnly:=True;
DBGrid3.ReadOnly:=True;
DBNavigator1.Enabled:=False;
DBNavigator3.Enabled:=False;
end;
If Query1.RecordCount = 0 Then Begin
DataSource2.DataSet:=Table2;
MessageDlg('Данные не найдены!', mtInformation, [mbOK], 0);
Table1.MasterSource:=nil;
Table3.MasterSource:=nil;
RadioButton1.Enabled:=True;
RadioButton2.Enabled:=True;
RadioButton3.Enabled:=True;
RadioButton7.Enabled:=True;
RadioButton6.Enabled:=True;
RadioButton11.Enabled:=True;
RadioButton8.Enabled:=True;
RadioButton17.Enabled:=True;
RadioButton12.Enabled:=True;
RadioButton13.Enabled:=True;
end; end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
DBGrid1.ReadOnly:=False;
DBGrid2.ReadOnly:=False;
DBGrid3.ReadOnly:=False;
Table1.MasterSource:=nil;
Table3.MasterSource:=nil;
DataSource2.DataSet:=Table2;
DBNavigator1.Enabled:=True;
DBNavigator3.Enabled:=True;
RadioButton1.Enabled:=True;
RadioButton2.Enabled:=True;
RadioButton3.Enabled:=True;
RadioButton7.Enabled:=True;
RadioButton6.Enabled:=True;
RadioButton11.Enabled:=True;
RadioButton8.Enabled:=True;
RadioButton17.Enabled:=True;
RadioButton12.Enabled:=True;
RadioButton13.Enabled:=True;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
If (RadioButton2.Checked) and (RadioButton4.Checked) Then
Table1.IndexName:='FamInd';
If (RadioButton2.Checked) and (RadioButton5.Checked) Then
Table1.IndexName:='FamIndDes';
If (RadioButton1.Checked) and (RadioButton4.Checked) Then
Table1.IndexName:='
If (RadioButton1.Checked) and (RadioButton5.Checked) Then
Table1.IndexName:='
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
If (RadioButton7.Checked) and (RadioButton9.Checked) Then
Table2.IndexName:='
If (RadioButton7.Checked) and (RadioButton10.Checked) Then
Table2.IndexName:='
If (RadioButton6.Checked) and (RadioButton9.Checked) Then
Table2.IndexName:='
If (RadioButton6.Checked) and (RadioButton10.Checked) Then
Table2.IndexName:='
If (RadioButton11.Checked) and (RadioButton9.Checked) Then
Table2.IndexName:='MNumber1';
If (RadioButton11.Checked) and (RadioButton10.Checked) Then
Table2.IndexName:='
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
If (RadioButton17.Checked) and (RadioButton14.Checked) Then
Table3.IndexName:='MNumberInd'
If (RadioButton17.Checked) and (RadioButton15.Checked) Then
Table3.IndexName:='
If (RadioButton12.Checked) and (RadioButton14.Checked) Then
Table3.IndexName:='
If (RadioButton12.Checked) and (RadioButton15.Checked) Then
Table3.IndexName:='
end;
procedure TForm1.RadioButton1Click(
begin
RadioButton4.Enabled:=True;
RadioButton5.Enabled:=True;
BitBtn4.Enabled:=True;
end;
procedure TForm1.RadioButton2Click(
begin
RadioButton4.Enabled:=True;
RadioButton5.Enabled:=True;
BitBtn4.Enabled:=True;
end;
procedure TForm1.RadioButton7Click(
begin
RadioButton9.Enabled:=True;
RadioButton10.Enabled:=True;
BitBtn5.Enabled:=True;
end;
procedure TForm1.RadioButton6Click(
begin
RadioButton9.Enabled:=True;
RadioButton10.Enabled:=True;
BitBtn5.Enabled:=True;
end;
procedure TForm1.RadioButton11Click(
begin
RadioButton9.Enabled:=True;
RadioButton10.Enabled:=True;
BitBtn5.Enabled:=True;
end;
procedure TForm1.RadioButton17Click(
begin
RadioButton14.Enabled:=True;
RadioButton15.Enabled:=True;
BitBtn6.Enabled:=True;
end;
procedure TForm1.RadioButton12Click(
begin
RadioButton14.Enabled:=True;
RadioButton15.Enabled:=True;
BitBtn6.Enabled:=True;
end;
procedure TForm1.RadioButton3Click(
begin
Table1.IndexName:='';
RadioButton4.Checked:=True;
RadioButton5.Checked:=False;
RadioButton4.Enabled:=False;
RadioButton5.Enabled:=False;
BitBtn4.Enabled:=False;
end;
procedure TForm1.RadioButton8Click(
begin
Table2.IndexName:='';
RadioButton9.Checked:=True;
RadioButton10.Checked:=False;
RadioButton9.Enabled:=False;
RadioButton10.Enabled:=False;
BitBtn5.Enabled:=False;
end;
procedure TForm1.RadioButton13Click(
begin
Table3.IndexName:='';
RadioButton14.Checked:=True;
RadioButton15.Checked:=False;
RadioButton14.Enabled:=False;
RadioButton15.Enabled:=False;
BitBtn6.Enabled:=False;
end;
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
Form1.Height:=571;
BitBtn7.Enabled:=True;
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
Form1.Height:=827;
BitBtn7.Enabled:=False;
end;
procedure TForm1.Table3CalcFields(
begin
Table3Sum.Value:=Table3Oklad.
end;
procedure TForm1.Table1BeforeDelete(
begin
Table2.MasterSource:=
Table2.IndexName:='
Table2.MasterFields:='
with Table2 do begin
disableControls;
first;
while not EOF do
delete;
enableControls; end;
Table2.MasterSource:=nil;
Table2.IndexName:='';
Table2.MasterFields:='';
end;
procedure TForm1.Table3BeforeDelete(
begin
Table2.MasterSource:=
Table2.IndexName:='MNumber1';
Table2.MasterFields:='MNumber'
with Table2 do begin
disableControls;
first;
while not EOF do
delete;
enableControls; end;
Table2.MasterSource:=nil;
Table2.IndexName:='';
Table2.MasterFields:='';
end;
end.
unit BDFind;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm2 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
ComboBox1: TComboBox;
Label2: TLabel;
Edit1: TEdit;
BitBtn1: TBitBtn;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses BD;
{$R *.dfm}
procedure TForm2.FormActivate(Sender: TObject);
begin
Edit1.Clear;
Edit1.SetFocus;
end;
end.