МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
Ужгородський національний університет
Інженерно-технічний факультет
Кафедра Комп’ютерних систем та мереж
КУРСОВА РОБОТА
з дисципліни “Основи баз даних” на тему:
База даних «Туристичними стежками Карпат» з використанням InterBase
Зміст
Вступ 3
Розділ І. Теоретичні відомості. 4
1.1. Поняття бази даних 5
1.2. Еволлюція баз данних 5
1.3. Архітектура «Клієнт-Сервер» 6
1.4. Створення таблиць за допомогою SQL-запитів в IBConsole 7
Розділ ІІ. Проектування баз даних 10
2.1. Постановка задачі на розробку програми 10
2.2. Налаштування програми перед використанням 11
Висновок 14
Додаток 15
Текст основного модуля 15
Текст модуля додавання 19
Текст модуля додавання до БД 24
Текст додаккового модуля додавання 25
Перелік використаної літератури 26
Вступ
Основні ідеї сучасної інформаційної технології базуються на концепції баз даних (БД). Відповідно до даної концепції основою інформаційної технології є дані, організовані в БД, що адекватно відбивають реалії дійсності в тій або іншій предметній області, і які забезпечують користувача актуальною інформацією у відповідній предметній області.
Основне призначення системи управління базами даних (СУБД) — створення та підтримка в актуальному стані бази даних, а також зв'язок її з програмами розв'язування завдань (прикладні програми користувачів).
У світі існує безліч СУБД. Незважаючи на те, що вони можуть по-різному працювати з різними об'єктами і надають користувачу різні функції й засоби, більшість СУБД спираються на єдиний встановлений комплекс основних понять. Це дає нам можливість розглянути одну систему й узагальнити її поняття, прийоми й методи на весь клас СУБД.
Система управління базами даних поєднує відомості з різних джерел в одній реляційній базі даних. Створювані форми, запити і звіти дозволяють швидко й ефективно обновляти дані, отримувати відповіді на питання, здійснювати пошук потрібних даних, аналізувати дані, друкувати звіти, діаграми.
Розділ І. Теоретичні відомості.
Поняття бази даних
Відомі два підходи до організації інформаційних масивів: файлова організація та організація у вигляді бази даних. Файлова організація передбачає спеціалізацію та збереження інформації, орієнтованої, як правило, на одну прикладну задачу, та забезпечується прикладним програмістом. Така організація дозволяє досягнути високої швидкості обробки інформації, але характеризується рядом недоліків.
Характерна риса файлового підходу - вузька спеціалізація як обробних програм, так і файлів даних, що служить причиною великої надлишковості, тому що ті самі елементи даних зберігаються в різних системах. Оскільки керування здійснюється різними особами (групами осіб), відсутня можливість виявити порушення суперечливості збереженої інформації. Розроблені файли для спеціалізованих прикладних програм не можна використовувати для задоволення запитів користувачів, які перекривають дві і більше області. Крім того, файлова організація даних внаслідок відмінностей структури записів і форматів передання даних не забезпечує виконання багатьох інформаційних запитів навіть у тих випадках, коли всі необхідні елементи даних містяться в наявних файлах. Тому виникає необхідність відокремити дані від їхнього опису, визначити таку організацію збереження даних з обліком існуючих зв'язків між ними, яка б дозволила використовувати ці дані одночасно для багатьох застосувань. Вказані причини обумовили появу баз даних.
База даних може бути визначена як структурна сукупність даних, що підтримуються в активному стані та відображає властивості об'єктів зовнішнього (реального) світу. В базі даних містяться не тільки дані, але й описи даних, і тому інформація про форму зберігання вже не схована в сполученні "файл-програма", вона явним чином декларується в базі.
База даних орієнтована на інтегровані запити, а не на одну програму, як у випадку файлового підходу, і використовується для інформаційних потреб багатьох користувачів. В зв'язку з цим бази даних дозволяють в значній мірі скоротити надлишковість інформації. Перехід від структури БД до потрібної структури в програмі користувача відбувається автоматично за допомогою систем управління базами даних (СУБД).
Еволлюція баз данних
Пpостi файли. Хаpактеpизується послiдовною оpганiзацiєю фiзичних даних.
- оpiєнтацiя на одне застосування;
- високий piвень надлишковостi;
- вiдсутня незалежнiсть;
- забезпечується тiльки ввiд/вивiд даних без поточної їх обpобки;
- цiлiснiсть та захист вiдсутнi;
- пpацює тiльки в пакетному pежимi;
Файловi системи з типовими методами доступу. Хаpактеpизується набоpами даних з послiдовним чи пpямим доступом.
- пеpеважна оpiєнтацiя на одне застосування;
- значний piвень надлишковостi;
- iнфоpмацiю на носiях можна змiнювати без змiни пpикладних пpогpам;
- пpисутнi типовi методи доступу з piзними механiзмами адpесацiї;
- низька надiйнiсть системи;
- дозволяється pобота в pеальному часi та опеpативна обpобка даних;
Пеpшi СУБД.
- багато застосувань;
- мiнiмальна надлишковiсть;
- незалежнiсть фiзичної стpуктуpи даних вiд пpикладних пpогpам;
- забезпечуються piзнi шляхи доступу до одних i тих же даних для piзних застосувань; адpесацiя на piвнi полiв та гpуп; пошук по багатьом ключам;
- пiдтpимка цiлiсностi та захисту;
Сучаснi СУБД.
- логiчна та фiзична незалежнiсть даних;
- пiдтpимка шиpокого дiапазону мов пpогpамування piзного пpизначення;
- високий piвень iнтеpфейсу;
Архітектура «Клієнт-Сервер»
Курсова робота була розроблена на сервері InterBase. Пояснити цей вибір неважко:
InterBase – «рідний» сервер для Delphi (тому для доступа до нього непотрібно встановлювати додаткові драйвери SQL Links, які необхідні при роботі програм, написаних на Delphi, із інших СУБД).
В Delphi входить локальний сервер IB
SQL-сервер IB являється «промисловою» СУБД, призначена для зберігання і видачі великих об’ємів даних при використанні архітектури «клієнт-сервер» в умовах одночасної робот из БД великої кількості клієнтських програм.
Для задання посилальної і змістової цілісності в БД визначаються:
Відношення підпорядкованості між таблицями БД шляхом визначення первинних(PRIMARY) ключів у батьківських і зовнішніх(FOREIGN) ключів у дочірніх таблицях.
Бізнес-правила за допомогою тригерів (TRIGGER) – підпрограм, автоматично виконуємих сервером до і(або) після події зміни запису в таблиці БД.
Унікальні значення необхідних полів шляхом створення і використовування генератора(GENERATOR).
Створення таблиць за допомогою SQL-запитів в IBConsole
Середовище IBconsole широко використовується для програмування баз даних. Найчастіше, бази даних як певний підбір даних, організовані за допомогою таблиць. В реляційних базах даних таблиці представляють інформацію про об”єкти одного типу. Одиницею таблиці є запис, що містить декілька полів. Головне вікно програми має наступний вигляд:
Створювати таблиці в IBConsole, проводити їх модифікацію та отримувати з них дані можна, зокрема, через написання на мові SQL (Structured Query Language) запитів. Основними групами операторів SQL є оператори визначення даних та оператори маніпулювання даними.
Оператори визначення даних дозволяють створювати і видаляти таблиці, змінювати визначення таблиць і додавати правила цілостності.
Створення таблиць.
CREATE TABLE main(ID integer not null,
name varchar(10),
surname varchar(30));
При запуску цього запиту створюється таблиця з ім’ям main, в якій є поля surname, name текстового типу.
Вилучення таблиць.
SQL
DROP TABLE main
При запуску цього запиту таблиця main знищується.
Оператори маніпулювання даними використовуються для видалення, додавання та пошуку записів в таблицях.
Додавання записів.
Щойно створену таблицю students можна заповнити даними.
INSERT INTO main (id,name,height,region,Details)
VALUES (‘1’, ‘Говерла’,’2062’ ,’Рахівський’ ,’Найвища вершина України’)
Інструкція VALUES вставляє в таблицю main один рядок, параметри VALUES: (‘1’, ‘Говерла’,’2062’ ,’Рахівський’ ,’Найвища вершина України’) записуються у відповідні поля таблиці.
Модифікація даних.
UPDATE main
SET lastname=”Петрикович”
Пошук даних.
Вибір даних з таблиці здійснюється за допомогою інструкції SELECT.
SELECT * FROM main,income,free
WHERE main.id=income.id and main.id=free.id and
main.name =’ Тестюк’
Для виконання всіх попередніх вправ було використано IBConsole, але все це можна зробити і за допомогою елемента керування TQuery в програмах, написаних на Delphi.
Розділ ІІ. Проектування баз даних
2.1. Постановка задачі на розробку програми
Дана програма створена для полегшення та автоматизації роботи туристичних походів.
Програма дуже зручна і легка у застосуванні. Завдяки ній легко можна знайти дані які стосуються даної вершини.
2.2. Налаштування програми перед використанням
Для початку потрібно запустити IBConsole і зробити наступні дії:
створити новий опис бази даних. Для цього можна натиснути на меню Server і вибрати «Register …»:
Вводимо необхідні параметри. Після цього база успішно запускатиметься.
Все це виконується для того, щоб програма не залежала від місцезнаходженн бази на диску. Якщо ви переміщаєте базу на друге місце то все що потрібно зробити то це змінити шлях в IBConsole.
2.3. Деякі форми програми
У з’явившомуся(головному) вікні БД Можна виконувати всі можливі дії з БД
Вибравши пункт «Додати»:
Ми вводимо всі необхідні дані які характеризують вершину.Причому номер запису (ID) встановлюється автоматично.Район місцезнаходження даної Вершини ми можемо вибирати тільки з запропонованих районів Закарпатської області.Вибравши Відмінити ми повернемось до головного вікна програми
Вибравши “Додати”, бачимо:
Натиснувши “Додати” Дана вершина буде додана до БД і ми повернемось головного вікна програми.Натиснувши“Відмінити” ми повернемось до попереднього вікна додавання вершини.
Якщо ж імя введеної вершини вже існує то программа виведе повідомлення про підтвердження додавання такої вершини.
Висновок
На даній курсовій роботі я набув навичок у програмуванні в Delphi 7 з використанням SQL-запитів, а також з використанням InterBase.
Основним завдання було розробити програму «БД Вершини Закарпаття». Дана програма може бути використана в відділах туризму та центрах туризму. Зміна даних в БД проводиться легко і користувачу непотрібно знати принцип роботи програми. Меню має інтуїтивно зрозумілий вигляд, що полегшує користування цією програмою.
Додаток
Текст основного модуля
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids, IBDatabase, IBCustomDataSet,
IBQuery;
type
TForm1 = class(TForm)
IBDatabase1: TIBDatabase;
IBQuery1: TIBQuery;
IBTransaction1: TIBTransaction;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
GroupBox1: TGroupBox;
Button2: TButton;
Label1: TLabel;
Edit3: TEdit;
ComboBox1: TComboBox;
Label2: TLabel;
GroupBox2: TGroupBox;
Edit1: TEdit;
Button3: TButton;
GroupBox3: TGroupBox;
ComboBox2: TComboBox;
Button5: TButton;
procedure DBGrid1CellClick(Column: TColumn);
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
str:string;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
str:=form1.DBGrid1.SelectedField.FieldName;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.IBQuery1.Active:=false;
Form1.IBQuery1.SQL.Text:='select * from MOUNT'+#13#10+
'order by ID ';
ibquery1.Active:=true;
form2.Visible:=true;
form1.Visible:=False;
form2.Edit1.Text:='';
form2.Edit2.Text:='';
form2.Edit3.Text:='';
form2.Edit5.Text:='';
form2.ref;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.IBDatabase1.Connected:=true;
form1.IBQuery1.Active:=false;
form1.IBQuery1.SQL.Text:='select * from mount';
form1.IBQuery1.Active:=true;
form1.DBGrid1.Columns.Items[0].Title.caption:='Номер';
form1.DBGrid1.Columns.Items[1].Title.caption:='Назва';
form1.DBGrid1.Columns.Items[2].Title.caption:='Висота';
form1.DBGrid1.Columns.Items[3].Title.caption:='Район';
form1.DBGrid1.Columns.Items[4].Title.caption:='Деталі';
end;
procedure TForm1.Button2Click(Sender: TObject);
var a:integer; str_e:string; c:char;
begin
if edit3.Text='' then begin
form1.IBQuery1.Active:=false;
Form1.IBQuery1.SQL.Text:='select * from MOUNT'+#13#10+
'order by ID ';
Form1.ibquery1.Active:=true;
end;
str_e:=edit3.Text;
str:='';
if combobox1.ItemIndex=0 then str:='ID';
if combobox1.ItemIndex=1 then str:='NAME';
if combobox1.ItemIndex=2 then str:='HEIGHT';
if combobox1.ItemIndex=3 then str:='REGION';
if combobox1.ItemIndex=4 then str:='DETAILS';
if str='' then
str:=dbgrid1.SelectedField.FieldName;
if str_e='' then begin
ibquery1.Active:=false;
ibquery1.SQL.Text:='select * from mount';
ibquery1.Active:=true; end
ELSE
BEGIN
begin
if ((str_e[1]='1')or(str_e[1]='2')or(str_e[1]='3')or(str_e[1]='4')or(str_e[1]='5')or(str_e[1]='6')or(str_e[1]='7')or(str_e[1]='8')or(str_e[1]='9')or(str_e[1]='0')) then BEGIN
ibquery1.Active:=false;
ibquery1.SQL.Text:='select * from mount'+#10#13+
'where '+str+' = '+#39+str_e+#39+' ';
ibquery1.Active:=true;
END else begin
ibquery1.Active:=false;
str_e:=uppercase(edit3.Text);
ibquery1.SQL.Text:='select * from mount'+#10#13+
'where upper('+str+' collate PXW_CYRL) like upper('+#39+'%'+str_e+'%'+#39+' collate PXW_CYRL) ';
ibquery1.Active:=true;
end;
end;
END;
form1.DBGrid1.Columns.Items[0].Title.caption:='Номер';
form1.DBGrid1.Columns.Items[1].Title.caption:='Назва';
form1.DBGrid1.Columns.Items[2].Title.caption:='Висота';
form1.DBGrid1.Columns.Items[3].Title.caption:='Район';
form1.DBGrid1.Columns.Items[4].Title.caption:='Деталі';
end;
procedure TForm1.Edit1Change(Sender: TObject);
var a:integer; str_e:string; c:char;
begin
str_e:=edit1.Text;
if str='' then
str:=dbgrid1.SelectedField.FieldName;
if str_e='' then begin
ibquery1.Active:=false;
ibquery1.SQL.Text:='select * from mount';
ibquery1.Active:=true; end
ELSE
BEGIN
begin
if ((str_e[1]='1')or(str_e[1]='2')or(str_e[1]='3')or(str_e[1]='4')or(str_e[1]='5')or(str_e[1]='6')or(str_e[1]='7')or(str_e[1]='8')or(str_e[1]='9')or(str_e[1]='0')) then BEGIN
ibquery1.Active:=false;
ibquery1.SQL.Text:='select * from mount'+#10#13+
'where '+str+' = '+#39+str_e+#39+' ';
ibquery1.Active:=true;
END else begin
ibquery1.Active:=false;
str_e:=uppercase(edit1.Text);
ibquery1.SQL.Text:='select * from mount'+#10#13+
'where upper('+str+' collate PXW_CYRL) like upper('+#39+'%'+str_e+'%'+#39+' collate PXW_CYRL) ';
ibquery1.Active:=true;
end;
end;
END;
form1.DBGrid1.Columns.Items[0].Title.caption:='Номер';
form1.DBGrid1.Columns.Items[1].Title.caption:='Назва';
form1.DBGrid1.Columns.Items[2].Title.caption:='Висота';
form1.DBGrid1.Columns.Items[3].Title.caption:='Район';
form1.DBGrid1.Columns.Items[4].Title.caption:='Деталі';
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
Form2.Close;
Form3.Close;
Form4.Close;
end;
procedure TForm1.Button5Click(Sender: TObject);
var sst:string;
begin
if combobox2.ItemIndex=0 then sst:='ID';
if combobox2.ItemIndex=1 then sst:='NAME';
if combobox2.ItemIndex=2 then sst:='HEIGHT';
if combobox2.ItemIndex=3 then sst:='REGION';
if combobox2.ItemIndex=4 then sst:='DETAILS';
ibquery1.Active:=false;
ibquery1.SQL.Text:='select * from MOUNT'+#13#10+
'order by '+sst+' ';
ibquery1.Active:=true;
form1.DBGrid1.Columns.Items[0].Title.caption:='Номер';
form1.DBGrid1.Columns.Items[1].Title.caption:='Назва';
form1.DBGrid1.Columns.Items[2].Title.caption:='Висота';
form1.DBGrid1.Columns.Items[3].Title.caption:='Район';
form1.DBGrid1.Columns.Items[4].Title.caption:='Деталі';
end;
end.
Текст модуля додаваня
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit5: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
Label4: TLabel;
Procedure ref;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1, Unit3, Unit4;
{$R *.dfm}
Procedure TForm2.ref;
var a:string; s:integer;
begin
form1.IBQuery1.Active:=false;
form1.IBQuery1.Active:=true;
form1.IBQuery1.Last;
s:=form1.IBQuery1.fieldbyname('id').AsInteger;
Form2.Edit1.Text:=inttostr(s+1);
form2.Edit1.ReadOnly:=true;
Form2.ComboBox1.Items.Clear;
form1.IBQuery1.Active:=false;
form1.IBQuery1.SQL.Text:='select region from mount'+#10#13+
' group by region';
form1.IBQuery1.Active:=true;
while not form1.IBQuery1.Eof do
begin
form2.ComboBox1.Items.Add(form1.IBQuery1.fieldbyname('region').AsString);
form1.IBQuery1.Next;
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
var kol:boolean; a,b:string;
begin
if form2.Edit5.Text='' then
begin
Form2.Edit5.Text:=' '
end;
form1.IBQuery1.Active:=false;
form1.IBQuery1.SQL.Text:='select * from mount';
form1.IBQuery1.Active:=true;
form1.IBQuery1.First;
kol:=false;
while not form1.IBQuery1.Eof do
begin
a:=ansiuppercase(form2.edit2.Text);
if a=ansiuppercase(form1.IBQuery1.FieldByName('name').AsString) then
begin
kol:=true;
b:=form1.IBQuery1.fieldbyname('id').AsVariant;
end;
form1.IBQuery1.Next;
end;
if kol=true then begin
form1.IBQuery1.Active:=false;
form1.IBQuery1.SQL.Text:='select * from mount'+#10#13+
'where id = '+#39+b+#39+' ';
form1.IBQuery1.Active:=true;
form4.Label5.Caption:='Назва: '+Form2.Edit2.Text;
form4.Label13.Caption:='ID: '+Inttostr(form1.IBQuery1.Fieldbyname('id').AsVariant);
form4.Label2.Caption:='Висота: '+form1.IBQuery1.fieldbyname('height').AsVariant;
form4.Label4.Caption:='Район: '+form1.IBQuery1.fieldbyname('region').AsVariant;
form4.Label12.Caption:='Опис: '+form1.IBQuery1.fieldbyname('details').AsVariant;
form1.IBQuery1.Active:=true;
Form4.label3.Caption:='ID: '+form2.Edit1.Text;
Form4.label8.Caption:='Назва: '+form2.Edit2.Text;
Form4.label9.Caption:='Висота: '+form2.Edit3.Text;
Form4.label10.Caption:='Район: '+form2.ComboBox1.Text;
Form4.label11.Caption:='Опис: '+form2.Edit5.Text;
Form4.Visible:=true;
Form2.Visible:=false;
end
else begin
Form3.Visible:=true;
Form2.Visible:=False;
form3.Label2.Caption:=form2.Edit1.Text;
form3.Label3.Caption:=Form2.edit2.text;
form3.Label4.Caption:=Form2.edit3.text;
form3.Label5.Caption:=Form2.edit5.text;
form3.Label6.Caption:=Form2.combobox1.Text;
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
form1.IBQuery1.Active:=false;
Form1.IBQuery1.SQL.Text:='select * from MOUNT'+#13#10+
'order by ID ';
Form1.ibquery1.Active:=true;
Form2.Close;
Form1.Visible:=true;
end;
end.
Текст модуля додавання запису в БД
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2, Unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
begin
form1.IBQuery1.Active:=false;
form1.IBQuery1.SQL.Text:='insert into mount (id,name,height,region,details) values ('+#39+form2.edit1.text+#39+','+#39+form2.Edit2.Text+#39+','+#39+form2.Edit3.Text+#39+','+#39+form2.ComboBox1.Text+#39+','+#39+form2.Edit5.Text+#39+')';
form1.IBQuery1.Active:=true;
form1.IBTransaction1.Commit;
Form1.Visible:=true;
Form3.Visible:=False;
form1.IBQuery1.Active:=false;
Form1.IBQuery1.SQL.Text:='select * from MOUNT'+#13#10+
'order by ID ';
Form1.ibquery1.Active:=true;
end;
procedure TForm3.Button2Click(Sender: TObject);
begin
Form3.Visible:=False;
Form2.Visible:=true;
end;
end.
Текст додаткового модуля додаваня до БД
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Label1: TLabel;
GroupBox1: TGroupBox;
Label2: TLabel;
GroupBox2: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Button1: TButton;
Button2: TButton;
Label12: TLabel;
Label13: TLabel;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit3, Unit2, Unit1;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Form4.Visible:=False;
Form3.Visible:=true;
form3.Label2.Caption:=form2.Edit1.Text;
form3.Label3.Caption:=Form2.edit2.text;
form3.Label4.Caption:=Form2.edit3.text;
form3.Label5.Caption:=Form2.edit5.text;
form3.Label6.Caption:=Form2.combobox1.Text;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Form4.Visible:=false;
Form2.visible:=True;
end;
procedure TForm4.FormActivate(Sender: TObject);
Var a,b:string;
begin
end;
end.
Перелік використаної літератури
Сорокин А. В. Delphi. Разработка баз данных. — СПб: Питер, 2005. — 480 с.
Фаронов В. В. Delphi 2005. Разработка приложений для баз данных и Интернета. — СПб: Питер, 2005. — 608 с.
Епанешников А. М., Епанешников В. А. Delphi. Программирование СУБД. — М.: ДИАЛОГ-МИФИ, 2001. — 528 с.
Ковязин А. Н., Востриков С. М. Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/Firebird/Yaffil. — М.: Кудиц, 2005. — 496 с.
Скляр А. М. Введение в InterBase. — М.: Горячая линия–Телеком, 2002. — 517 с.
Фленов М. Е. Библия Delphi. — СПб: BHV, 2004. — 880 с.
Хармон Э. Руководство разработчика баз данных в Delphi/Kylix. — М.: Вильямс, 2002. — 368 с.
Галисеев Г. В. Программирование в среде Delphi 7. Самоучитель. — К.: Диалектика, 2003. — 288 с.
Керман М. К. Программирование и отладка в Delphi. Учебный курс. — М.: Вильямс, 2004. — 720 с.
Пачеко К. Delphi for .NET. Руководство разработчика. — М.: Вильямс, 2005. — 960 с.