Туристичними стежками Карпат

Інформація про навчальний заклад

ВУЗ:
Ужгородський національний університет
Інститут:
Не вказано
Факультет:
Інженерно технічний
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Курсова робота
Предмет:
Основи баз даних

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ Ужгородський національний університет Інженерно-технічний факультет Кафедра Комп’ютерних систем та мереж КУРСОВА РОБОТА з дисципліни “Основи баз даних” на тему: База даних «Туристичними стежками Карпат» з використанням 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 с.
Антиботан аватар за замовчуванням

05.02.2013 19:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!