IBDataSet- Назначение компонента: буферизация записей, выбираемых оператором SELECT, для представления этих данных в Grid, а также для обеспечения "редактируемости" записи путем автоматического или ручного задания запросов Insert, Delete и Update.
DataSource- Свойство DataSet обеспечивает связь между компонентом, представляющим собой таблицу или запрос, и компонентами, предназначенными для доступа к записям. Наличие этого свойства позволяет выбирать источник данных. Например, база данных может быть организована таким образом, что таблица, состоящая из большого числа записей, разделена на несколько подтаблиц, имеющих одинаковую структуру. В этом случае в приложении каждой подтаблице будет соответствовать свой компонент Table, а выбор конкретной подтаблицы можно осуществить установкой значения свойства DataSet.
PageControl- Компонент Т PageControl может содержать несколько перкрывающих друг друга панелей класса TtabSheet. Каждая панель выбирается связанной с ней закладкой и может содержать свой набор помещенных на нее компонентов.
DBGrid- омпонент DBGrid обеспечивает представление базы данных в виде таблицы. Свойства компонента DBGridl определяют вид таблицы и действия, которые могут быть выполнены над данными во время работы программы.
PopupMenu- контекстное меню.
2.6 Блок схема
3. Технологическая часть
3.1 Руководство пользователю
Для того, чтобы открыть приложение базы данных необходимо двойным кликом мыши нажать на ярлык
.После запуска приложения появится основное окно программы
Для добавления новых данных необходимо нажать на кнопку New, после чего появится дополнительное окно в которое необходимо ввести новые данные.
Для того чтобы измененить уже существующие данные, необходимо выбрать интересующую запись и нажать кнопку Change, после чего появится дополнительное окно в котором можно изменить данные. После внесенных изменений необходимо нажать кнопку Save для сохранения, либо Cancel для отмены.
Для удаления существующих записей, необходимо выбрать ту запись,которую следует удалить и нажать кнопку Delete.
Так же в базе данных существует поиск по названию страны(города).
Для того,чтобы осуществить поиск, необходимо ввести название страны(города) в соответствующее поле и нажать кнопку Search.
Для того чтобы скопировать необходимые данные из таблицы , нужно зажав кнопку Shift левой клавишей мыши, выбрать интересующие записи, после чего нажать правой кнопкой мыши для вызова контекстного меню и выбрать Copy.
В базе данных ведется лог событий таблицы города. Все изменения отображаются в заклдаке Log_Goroda.
4. Заключение
В данной работе были кратко описаны основные характеристики системы управления базами данных. Определены основные классы объектов БД, которые имеют значение при использовании для решения наиболее распространенных задач. Interbase- хорошее решение для предприятий, стремящихся совершенствовать управление бизнесом в условиях постоянно изменяющегося рынка, стремящихся в максимально короткие сроки получить правильное решение.
Разработанное приложение осуществляет основные операции: добавление, изменение, удаление данных. Разработан поиск по названию стран (городов).Возможно копирование данных из таблицы. Создана лог-таблица, в которой ведется учет изменения данных.
Список литературы
1. www.ibase.ru;
2. Фаронов В.В. Delphi 6. Учебный курс. Москва 2003г.
3. Шупрута В.В. Delphi 2005.
4. Петр Дархвелидзе, Евгений Марков Программирование в Delphi7 СПб, 2003г.
5. megalib.com
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, IBCustomDataSet, IBDatabase, StdCtrls,
ComCtrls, Buttons, Mask, DBCtrls, Menus, QClipbrd;
type
TForm1 = class(TForm)
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBDataSet1: TIBDataSet;
DataSource1: TDataSource;
DataSource2: TDataSource;
IBDataSet2: TIBDataSet;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Edit2: TEdit;
Label2: TLabel;
BitBtn8: TBitBtn;
TabSheet3: TTabSheet;
DBGrid3: TDBGrid;
DataSource3: TDataSource;
IBDataSet3: TIBDataSet;
PopupMenu1: TPopupMenu;
copy1: TMenuItem;
delete1: TMenuItem;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure copy1Click(Sender: TObject);
private { Private declarations }
public { Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, unit5;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if ibdataset2.Locate('NAZVANIE',Edit2.Text,[loPartialKey]) then form2.Show
else
showmessage('Не найдено');
//form1.ibdataset2.insert;
//form2.show;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
form1.IBDataSet1.Post;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ibdataset1.Edit;
//ibdataset1.Post;
form3.Show;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
form1.IBDataSet1.Insert;
//form1.IBDataSet1.Post;
form3.Show;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
ibdataset2.Insert;
//ibdataset2.Post;
form2.Show;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if MessageDlg ('Подтвердите удаление записи',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
ibdataset1.Delete
end;
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
ibdataset2.Edit;
form2.Show;
end;
procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if MessageDlg ('Подтвердите удаление записи',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
ibdataset2.Delete;
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
if ibdataset1.Locate('NAZVANIE',Edit1.Text,[loPartialKey]) then form3.Show
else
showmessage('Не найдено');
end;
procedure TForm1.BitBtn8Click(Sender: TObject);
begin
Form4.show;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ibdataset1.Open;
ibdataset2.Open;
end;
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
form5.Show;
form5.IBDataSet1.Open;
end;
procedure TForm1.DBGrid2DblClick(Sender: TObject);
begin
form5.Show;
form5.IBDataSet1.Open;
end;
procedure TForm1.copy1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid2.SelectedRows.Count>0 then
with DBGrid2.DataSource.DataSet do
for i:=0 to DBGrid2.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin
if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
s:= s+#13+#10;
end;
Clipboard.AsText := s;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, Mask, Buttons;
type
TForm2 = class(TForm)
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses unit1;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
form1.IBDataSet2.Post;
form2.Close;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
form2.Close;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DBCtrls;
type
TForm3 = class(TForm)
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit1;
{$R *.dfm}
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
form1.IBDataSet1.Post;
form3.Close;
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
form3.Close;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
end;
end.
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses unit1; {$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Form1.IBDatabase1.Params.Clear;
Form1.IBDatabase1.Params.Add('user_name='+Edit1.Text);
Form1.IBDatabase1.Params.Add('password='+Edit2.Text);
Form1.IBDatabase1.Params.Add('lc_ctype=WIN1251');
Form1.IBDatabase1.Connected:=True;
Form1.IBTransaction1.StartTransaction;
Form1.IBDataSet1.Open;
Form1.IBDataSet2.Open;
Form1.IBDataSet3.Open;
form4.Close;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
end;
end.
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, IBCustomDataSet, Grids, DBGrids;
type
TForm5 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
IBDataSet1: TIBDataSet;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses unit1;
{$R *.dfm}
procedure TForm5.FormCreate(Sender: TObject);
begin
end;
end.