Міністерство освіти і науки України
Міністерство освіти і науки України
Івано-Франківський національний технічний університет нафти і газу
Кафедра КТіСУ
Лабораторна робота №5
з дисципліни “Розподілені бази даних”
Забезпечення доступу до бази даних MS SQL Server засобами Borland Delphi
Виконав:
студент групи
АУ -01-2
Дутчак М.М.
Перевірив:
Якубовський В.П.
м.Івано-Франківськ
2006 р.
Мета: забезпечити доступ та розробити інтерфейс для роботи із раніше створеною базою даних, згідно індивідуального завдання з використанням засобів програми Borland Delphi 6.0 чи інших наявних мов програмування.
Прилади і обладнання: програма Borland Delphi 6.0, MS SQL Server, ЕОМ.
Хід роботи:
Використовуючи засоби програми Windows XP, а саме Адміністратор джерел даних ODBC, здійснимо підключення раніше створеної бази даних Formula1 в середовищі Microsoft SQL Server 2000 для її подальшого застосування та відображення в програмному середовищі Borland Delphi:
Мой компьютер Панель управления Администрирование Источник даных ODBC після чого на екран виводиться вікно програми Администратор источников даных ODBC.
Рисунок 1 – Графічне вікно програми Администратор источников даных ODBC
Для встановлення зв’язку із відповідним джерелом даних, в даному випадку із базою даних Formula1 (як бачимо, вона відображається у вікні, тобто база даних була підключена раніше) необхідно натиснути кнопку Добавить…
Рисунок 2 – Вибір драйвера для якого задається джерело даних
Після вибору драйвера джерела даних натиснути кнопку Готово, після чого у відповідному вікні, що появляється задати назву джерела даних, його опис та вибрати відповідний сервер бази даних:
Рисунок 3 – Створення джерела даних для SQL-сервера
Після виконання відповідних налаштувань у вікні Администратора источников даных ODBC з’явиться ім’я підключеного джерела даних, тобто бази даних.
Для забезпечення доступу до бази даних Formula1 MS SQL Server в середовищі Borland Delphi 6.0, використовуються наступні стандартіні компоненти:
Тable DataSource BDGrid
DB Navigator
Компонент Тable розміщується на закладці BDE, він використовується для підключення до бази даних, де відповідно, тобто в його параметрах вказується розтащшування БД, тип БД, логін, пароль та ін.
Компонент DataSource - проміжний компонент, який є джерелом даних, знаходиться на закладці Data Access.
Компоненти DBGrid та DBNavigator використовується для візуалізації і відображення даних, вони розташовані на закладці Data Controls.
Представимо лістинг розробленої програми:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ExtCtrls, DBCtrls, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
DBNavigator1: TDBNavigator;
Table1ID_comandy: TIntegerField;
Table1Name_comandy: TStringField;
Table1Reyting: TIntegerField;
Table1Predstavnyctvo: TStringField;
Table1Kapital_comandy: TStringField;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation
uses Unit6;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Active:=True;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Table1.Active:=False;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form6.Enabled:=True;
end;
end.
Рисунок 4 – Вікно форми Команди формули-1
//--------------------------------------------------------------------------------------------------------------
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm2 = class(TForm)
DataSource2: TDataSource;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
Table2: TTable;
Table2ID_granpri: TIntegerField;
Table2Name_granpri: TStringField;
Table2City: TStringField;
Table2Pryzovyj_fond: TStringField;
Table2Chyslo_krugiv: TIntegerField;
Table2Data: TDateTimeField;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
Implementation
uses Unit6;
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
Table2.Active:=True;
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
Table2.Active:=False;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form6.Enabled:=True;
end;
end.
Рисунок 5 – Вікно форми Гран-прі формули-1
//--------------------------------------------------------------------------------------------------------------
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm3 = class(TForm)
DataSource3: TDataSource;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
Table3: TTable;
Table3ID_pilota: TIntegerField;
Table3Name_pilota: TStringField;
Table3Klas_pilota: TStringField;
Table3Kilkist_ochok: TIntegerField;
Table3Chyslo_gonok: TIntegerField;
Table3ID_comandy: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit6;
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
begin
Table3.Active:=True;
end;
procedure TForm3.FormDestroy(Sender: TObject);
begin
Table3.Active:=False;
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form6.Enabled:=True;
end;
end.
Рисунок 6 – Вікно форми Склади команд формули-1
//--------------------------------------------------------------------------------------------------------------
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm4 = class(TForm)
DataSource4: TDataSource;
DBGrid4: TDBGrid;
DBNavigator4: TDBNavigator;
Table4: TTable;
Table4ID_sponsora: TIntegerField;
Table4Name_sponsora: TStringField;
Table4ID_comandy: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
Implementation
uses Unit6;
{$R *.dfm}
procedure TForm4.FormCreate(Sender: TObject);
begin
Table4.Active:=True;
end;
procedure TForm4.FormDestroy(Sender: TObject);
begin
Table4.Active:=False;
end;
procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form6.Enabled:=True;
end;
end.
Рисунок 6 – Вікно форми Спонсори команд формули-1
//--------------------------------------------------------------------------------------------------------------
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TForm5 = class(TForm)
DBGrid5: TDBGrid;
DBNavigator5: TDBNavigator;
DataSource5: TDataSource;
Table5: TTable;
Table5ID_winner: TIntegerField;
Table5Time_of_finish: TStringField;
Table5ID_pilota: TIntegerField;
Table5ID_granpri: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
Implementation
uses Unit6;
{$R *.dfm}
procedure TForm5.FormCreate(Sender: TObject);
begin
Table5.Active:=True;
end;
procedure TForm5.FormDestroy(Sender: TObject);
begin
Table5.Active:=False;
end;
procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form6.Enabled:=True;
end;
end.
Рисунок 7 – Вікно форми Переможці формули-1
//--------------------------------------------------------------------------------------------------------------
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm6 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit1, Unit2, Unit3, Unit4, Unit5;
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
Form1.Visible:=True;
Form6.Enabled:=False;
end;
procedure TForm6.Button2Click(Sender: TObject);
begin
Form2.Visible:=True;
Form6.Enabled:=False;
end;
procedure TForm6.Button3Click(Sender: TObject);
begin
Form3.Visible:=True;
Form6.Enabled:=False;
end;
procedure TForm6.Button4Click(Sender: TObject);
begin
Form4.Visible:=True;
Form6.Enabled:=False;
end;
procedure TForm6.Button5Click(Sender: TObject);
begin
Form5.Visible:=True;
Form6.Enabled:=False;
end;
end.
Рисунок 8 – Вікно форми навігації по таблицях бази даних Formula1
Результати виконання програми:
Рисунок 9 – Графічне вікно основних таблиць бази даних Formula1
Створена програма із використанням засобів програмного середовища Borland Delphi 6.0 дозволяє здійснювати перегляд основних таблиць бази даних Formula1, здійснювати навігацію по таблицях БД, а також існують можливості додавання нових даних, видалення, модифікації уже існуючих введених даних з використанням відповідного компонента DB Navigator.
Рисунок 10 – Графічне вікно таблиці БД Команди формули-1
Рисунок 11 – Графічне вікно таблиці БД Гран-прі формули-1
Рисунок 12 – Графічне вікно таблиці БД Склади команд формули-1
Рисунок 13 – Графічне вікно таблиці БД Спонсори команд формули-1
Рисунок 10 – Графічне вікно таблиці БД Переможці формули-1
Висновок: в результаті виконання лабораторної роботи оволодів практичними навиками здійснення доступу до бази даних MS SQL Server з використанням програмних засобів Borland Delphi 6.0, навчився працювати з такими компонентами Borland Delphi як Тable, DataSource, DВ Grid, DB Navigator.