Тема: Метаrpk.lg.ua/_ld/2/242_pr_22_23.pdfмиші на імені псевдоніма...

18
Практична робота №22,23 Тема: Розробка баз даних в середовищі Delphi. Мета: Навчитись реалізовувати програми на мові Delphi, що дозволяють зв’язувати розроблені додатки з базою даних. Теоретичні відомості. ОСНОВНІ ПОНЯТТЯ БАЗ ДАНИХ З погляду користувача, база даних - це програма, що забезпечує роботу з інформацією. При запуску такої програми на екрані, як правило, з'являється таблиця, переглядаючи яку користувач може знайти відомості, які його цікавлять. Якщо система дозволяє, то він може внести зміни в базу даних: додати нову інформацію або видалити непотрібну. З погляду програміста, база даних - це набір файлів, що містять інформацію. Розробляючи базу даних для користувача, програміст створює програму, що забезпечує роботу з файлами даних. У цей час існує досить велика кількість програмних систем, що дозволяють створювати і використовувати локальні (dBASE, FoxPro, Access, Paradox) і віддалені (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) бази даних. До складу Delphi входять компоненти, що дозволяють створювати програми роботи з файлами даних, створеними різними системами: від dBASE до Infomix і Oracle. Delphi також дозволяє програмістові, використовуючи утиліту Borland Database Desktop, створювати файли баз даних у різних форматах. Класифікація баз даних Залежно від розташування програми, що використовує дані, і самих даних, а також способу поділу даних між декількома користувачами розрізняють локальні і віддалені бази даних. Локальна база даних Дані локальної бази даних (файли даних) перебувають на одному (локальному) пристрої, у якості якого може виступати диск комп'ютера або мережевий диск (диск іншого комп'ютера, що працює в мережі). Для забезпечення поділу даних (доступу до даних) між декількома користувачами, у якості яких виступають програми, що працюють на одному або декількох комп'ютерах, у локальних базах даних застосовується метод, що одержав назву блокування файлів. Суть цього методу полягає в тому, що поки дані використовуються одним користувачем, інший користувач не може працювати із цими даними, тобто дані для нього закриті, заблоковані. Paradox, dBase, FoxPro і Access - це локальні бази даних. Віддалена база даних Дані (файли) віддаленої бази даних перебувають на віддаленому комп'ютері. (Варто звернути увагу, що каталоги віддаленого комп'ютера не можуть розглядатися як мережеві диски.) Програма роботи з віддаленою базою даних складається із двох частин: клієнтською і

Transcript of Тема: Метаrpk.lg.ua/_ld/2/242_pr_22_23.pdfмиші на імені псевдоніма...

Практична робота №22,23

Тема: Розробка баз даних в середовищі Delphi.

Мета: Навчитись реалізовувати програми на мові Delphi, що дозволяють зв’язувати розроблені

додатки з базою даних.

Теоретичні відомості.

ОСНОВНІ ПОНЯТТЯ БАЗ ДАНИХ

З погляду користувача, база даних - це програма, що забезпечує роботу з інформацією. При

запуску такої програми на екрані, як правило, з'являється таблиця, переглядаючи яку користувач

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

даних: додати нову інформацію або видалити непотрібну.

З погляду програміста, база даних - це набір файлів, що містять інформацію. Розробляючи

базу даних для користувача, програміст створює програму, що забезпечує роботу з файлами даних.

У цей час існує досить велика кількість програмних систем, що дозволяють створювати і

використовувати локальні (dBASE, FoxPro, Access, Paradox) і віддалені (Interbase, Oracle, Sysbase,

Infomix, Microsoft SQL Server) бази даних.

До складу Delphi входять компоненти, що дозволяють створювати програми роботи з файлами

даних, створеними різними системами: від dBASE до Infomix і Oracle. Delphi також дозволяє

програмістові, використовуючи утиліту Borland Database Desktop, створювати файли баз даних у

різних форматах.

Класифікація баз даних

Залежно від розташування програми, що використовує дані, і самих даних, а також способу

поділу даних між декількома користувачами розрізняють локальні і віддалені бази даних.

Локальна база даних

Дані локальної бази даних (файли даних) перебувають на одному (локальному) пристрої, у

якості якого може виступати диск комп'ютера або мережевий диск (диск іншого комп'ютера, що

працює в мережі).

Для забезпечення поділу даних (доступу до даних) між декількома користувачами, у якості

яких виступають програми, що працюють на одному або декількох комп'ютерах, у локальних базах

даних застосовується метод, що одержав назву блокування файлів. Суть цього методу полягає в тому,

що поки дані використовуються одним користувачем, інший користувач не може працювати із цими

даними, тобто дані для нього закриті, заблоковані.

Paradox, dBase, FoxPro і Access - це локальні бази даних.

Віддалена база даних

Дані (файли) віддаленої бази даних перебувають на віддаленому комп'ютері. (Варто звернути

увагу, що каталоги віддаленого комп'ютера не можуть розглядатися як мережеві диски.)

Програма роботи з віддаленою базою даних складається із двох частин: клієнтською і

серверною. Клієнтська частина програми, що працює на комп'ютері користувача, забезпечує

взаємодію із серверною програмою: за допомогою запитів, переданих на віддалений комп'ютер,

надає доступ до даних.

Серверна частина програми, що працює на віддаленому комп'ютері, приймає запити, виконує

їх і пересилає дані клієнтській програмі. Запити являють собою команди, представлені мовою SQL

(Structured Query Language) - мові структурованих запитів.

Програма, що працює на віддаленому сервері, проектується таким чином, щоб забезпечити

одночасний доступ до інформації декількох користувачів. При цьому для забезпечення доступу до

даних замість механізму блокування файлів використовують механізм транзакцій.

Транзакція - це деяка послідовність дій, що повинна бути обов'язково виконана над даними

перед тим, як вони будуть передані. У випадку виявлення помилки під час виконання будь-якої з дій

вся послідовність дій, що складають транзакцію, повторюється знову. Таким чином, механізм

транзакцій забезпечує захист від апаратних збоїв. Він також забезпечує можливість

багатокористувацького доступу до даних.

Розробка програми роботи з віддаленою базою даних - складне і трудомістке завдання. Його

рішення припускає наявність у розроблювача глибоких знань і великого досвіду розробки

програмного забезпечення.

Структура бази даних

База даних - це набір однорідної, як правило, впорядкованої за деяким критерієм, інформації.

База даних може бути представлена в "паперовому" або в комп'ютерному виді.

Типовим прикладом "паперової" бази даних є каталог бібліотеки - набір паперових карток, що

містять інформацію про книги. Інформація в цій базі однорідна (містить відомості тільки про книги) і

впорядкована (картки розставлені, наприклад, відповідно до алфавітного порядку прізвищ авторів).

Іншими прикладами "паперової" бази даних є телефонний довідник і розклад руху поїздів.

Комп'ютерна база даних являє собою файл (або набір зв'язаних файлів), що містить

інформацію.

База даних складається із записів. Кожен запис містить інформацію про один екземпляр.

Наприклад, кожен запис бази даних "Архітектурні пам'ятники Львова" містить інформацію тільки

про один екземпляр - історичний пам'ятник.

Записи складаються з полів. Кожне поле містить інформацію про одну характеристику

екземпляра. Наприклад, запис бази даних "Архітектурні пам'ятники Львова" складається з наступних

полів: "Пам'ятник", "Архітектор" і "Історична довідка", де "Пам'ятник", "Архітектор" і "Історична

довідка" - це імена полів. Вміст цих полів характеризує конкретний пам'ятник.

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

не заповнені, однак вони однаково присутні в записі.

На папері базу даних зручно представити у вигляді таблиці. Кожен рядок таблиці відповідає

запису, а комірка таблиці - полю. При цьому заголовок стовпця таблиці - це ім'я поля, а номер рядка

таблиці - номер запису.

Інформацію комп'ютерних баз даних як правило виводять на екран у вигляді таблиць. Тому в

літературі досить часто замість словосполучення "файл даних" використається словосполучення

"таблиця даних" або просто "таблиця".

Модель бази даних в Delphi

Кожна таблиця фізично зберігається в окремому файлі. Однак ототожнювати базу даних і

таблицю не можна, тому що досить часто поля одного запису розподілені по декількох таблицях і,

отже, перебувають у різних файлах.

У найпростішому випадку джерелом інформації для програми, що працює з базою даних,

може бути вся таблиця. Однак, як правило, користувача цікавить не вся інформація, що перебуває в

базі даних, а тільки якась її частина. Він вибирає і переглядає тільки деякі, записи, що задовольняють

його запиту. Тому в модель бази даних крім таблиці, що представляють собою всю базу даних, було

введене поняття запиту, що є вибіркою, тобто групою записів бази даних.

Псевдонім бази даних

Розробляючи програму роботи з базою даних, програміст не може знати, на якому диску і у

якому каталозі будуть перебувати файли бази даних під час її використання. Наприклад, користувач

може помістити базу даних в один з каталогів дисків С:, D: або на мережний диск. Тому виникає

проблема передачі в програму інформації про місце знаходження файлів бази даних.

В Delphi проблема передачі в програму інформації про місце знаходження файлів бази даних

вирішується шляхом використання псевдоніма бази даних. Псевдонім (Alias) - це коротке ім'я,

поставлене у відповідність реальному, повному імені каталогу бази даних. Наприклад, псевдонімом

каталогу C:\data\MistoLviv може бути ім'я Lviv. Програма роботи з базою даних для доступу до даних

використовує не реальне ім'я, а псевдонім.

Для доступу до інформації програма, що забезпечує роботу з базою даних, підключає

бібліотеку Borland Database Engine (BDE), що, у свою чергу, використовує конфігураційний файл, що

містить інформацію про всі зареєстровані в системі псевдоніми.

Псевдонім бази даних може бути створений (зареєстрований) за допомогою утиліти BDE

Administrator. Ця ж утиліта дозволяє змінити каталог, пов'язаний із псевдонімом.

Створення бази даних

База даних - це набір файлів (таблиць), у яких перебуває інформація. Як правило, база даних

складається з декількох таблиць, які розміщають в одному каталозі. Каталог для нової бази даних

створюється, наприклад, за допомогою Провідника. Таблицю можна створити, скориставшись

утилітою, яка входить до складу Delphi - Borland Database Desktop або організувавши SQL-запит до

сервера бази даних.

Так як для доступу до файлів (таблиць) бази даних бібліотека BDE використовує не ім'я

каталогу, у якому перебувають файли, а його псевдонім, то перед тим, як приступити до створення

таблиць нової бази даних, необхідно створити псевдонім для цієї бази даних.

Таким чином, процес створення бази даних може бути представлений як послідовність

наступних кроків:

1. Створення каталогу.

2. Створення псевдоніма.

3. Створення таблиць

Створення каталогу

Каталог (папка) для файлів бази даних можна створити, наприклад, за допомогою Провідника.

Як правило файли локальної бази даних поміщають в окремому підкаталозі каталогу програми

роботи з базою даних.

Наприклад для бази даних "Архітектурні пам'ятники Львова" треба в каталозі \ Проекти

створити каталог Львів і у ньому - підкаталог Data.

Створення псевдоніма

Псевдонім бази даних створюється за допомогою утиліти, що входить в Delphi BDE

Administrator, що запускається з Windows вибором з меню Програми | Borland Delphi 7 команди BDE

Administrator.

Вид діалогового вікна BDE Administrator після запуску наведений на рис.1.1

Рисунок 1.1 - Вікно BDE Administrator

У лівій частині вікна, на вкладці Databases, перераховані псевдоніми, які зареєстровані на

даному комп'ютері. Для того щоб створити новий псевдонім, необхідно з меню Object вибрати

команду New. Потім у діалоговому вікні, що відкривається, New Database Alias (Новий псевдонім

бази даних) зі списку Database Driver Name, у якому перераховані зареєстровані в системі драйвери

доступу до баз даних, потрібно вибрати драйвер для створюваної бази даних (рис. 1.2), тобто

фактично вибрати тип створюваної бази даних.

При створенні псевдоніма за замовчуванням пропонується драйвер STANDARD (default

driver), що забезпечує доступ до таблиць у форматі Paradox.

Після вибору драйвера і кліка на кнопці ОК у список псевдонімів буде доданий новий

елемент. Після цього потрібно змінити автоматично створене адміністратором ім'я псевдоніма і

задати шлях до файлів бази даних, для якої створюється псевдонім.

Ім 'я псевдоніма можна змінити звичайним для Windows чином: клацнути правою кнопкою

миші на імені псевдоніма (на вкладці Databases), у контекстному меню, що з'явилось, вибрати

команду Rename (Перейменувати) і в діалоговому вікні, що відкрилося, ввести нове ім'я. Путь до

файлів бази даних можна ввести на вкладці Definition у поле Path із клавіатури або скористатися

стандартним діалоговим вікном Select Directory (Вибір каталогу), що відкривається кліком на кнопці

із трьома крапками, що перебуває наприкінці поля Path.

Рисунок 1.2 - Діалогове вікно New Database Alias

Як приклад на рис. 1.4 наведений вид, вікна BDE Administrator після створення псевдоніма

Lviv для бази даних "Архітектурні пам'ятники Львова".

Для того щоб створений псевдонім був зареєстрований у файлі конфігурації (Idapi.cfg),

необхідно в меню Object вибрати команду Apply (Застосувати). У діалоговому вікні, що відкрилося,

Confirm варто підтвердити необхідність збереження змін у файлі конфігурації.

Створення таблиці

Важливим моментом при створенні бази даних є розподіл інформації між полями запису.

Очевидно, що інформація може бути розподілена між полями порізному.

Наприклад, відомості про історичні пам'ятники Львова можуть бути організовані у вигляді

записів, що складаються з полів "Пам'ятник" і "Історична довідка" або з полів "Пам'ятник",

"Архітектор", "Рік" і "Історична довідка".

У першому варіанті поле "Пам'ятник" буде містити назву пам'ятника, а поле "Історична

довідка" - всю іншу інформацію. При цьому користувач зможе знайти інформацію про пам'ятник, що

його цікавить, тільки за назвою. При другому варіанті організації запису користувач зможе знайти

інформацію про пам'ятники, архітектором якого є конкретний зодчий, або про пам'ятники, зведені у

даний історичний період.

Можна сформулювати наступне правило: якщо передбачається, що під час використання бази

даних буде виконуватися вибірка інформації за деяким критерієм, то інформацію, що забезпечує

можливість цієї вибірки, варто помістити в окреме поле.

Після того як визначені поля запису, необхідно виконати розподіл полів по таблицях. У

простій базі даних всі поля можна розмістити в одній таблиці. У складній базі поля розподіляють по

декількох таблицях, і введенням деякої додаткової інформації, що однозначно ідентифікує кожен

запис, забезпечується зв'язок між таблицями.

Рисунок 1.4 - Результат створення псевдоніма

Бази даних, що складаються з декількох, зв'язаних між собою таблиць, називаються

реляційними. У реляційних базах даних, для того щоб уникнути дублювання інформації в таблицях,

до основної інформації додається деяка службова інформація, що однозначно ідентифікує запис.

Після того як визначена структура записів бази даних, можна приступити безпосередньо до

створення таблиць. Таблиці створюються за допомогою утиліти, що входить до складу Delphi -

Database Desktop.

Утиліта Database Desktop дозволяє виконувати всі необхідні при роботі з базами даних дії.

Вона забезпечує створення, перегляд і модифікацію таблиць баз даних різних форматів (Paradox,

dBASE, Microsoft Access). Крім того, утиліта дозволяє виконувати вибірку інформації шляхом

створення запитів.

Для того щоб створити нову таблицю, запустити Database Desktop. Потім у вікні, що з'явилося,

утиліти Database Desktop треба з меню File вибрати команду New і у списку, що з'явився, вибрати тип

створюваного файлу - Table. Потім у діалоговому вікні, що відкрилося, Create Table варто вибрати

тип створюваної таблиці (значенням за замовчуванням є тип Paradox 7).

В результаті відкривається діалогове вікно Create Paradox 7 Table, у якому можна визначити

структуру записів таблиці.

Для кожного поля таблиці необхідно задати ім'я, тип і, якщо потрібно, розмір поля. Ім'я поля

використається для доступу до даних. Як ім'я поля, що вводиться в стовпчик Field Name, можна

використати послідовність із букв латинського алфавіту і цифр довжиною не більше 25 символів.

Тип поля визначає тип даних, які можуть бути поміщені в поле. Тип задається введенням у

стовпчик Туре символьної константи. Типи полів і відповідні їм константи наведені в таблиці №1

Таблиця №1 - Типи полів, що визначають тип інформації, яка може бути записана у поле

Тип Константа Вміст поля

Alpha A Рядок символів. Максимальна довжина рядка визначається

характеристикою Size, значення якої перебувають у діапазоні 1—255

Number N Число з діапазону 10-307— 10308 з 15-ма значущими цифрами

Money $ Число в грошовому форматі. Цифри числа діляться на групи за

допомогою роздільника груп розрядів. Також виводиться знак грошової

одиниці

Short S Ціле число з діапазону -32767—32767

Long Integer I Ціле число з діапазону -2 147 483 648-2 147 483 647

Date D Дата

Time Т Час із з півночі, виражене в мілісекундах

Time stamp @ Час і дата

Memo M

Рядок символів довільної довжини. Поле типу Memo

використовується для зберігання текстової інформації, що не може бути

збережена в поле типу Alpha. Розмір поля (1—240) визначає, скільки

символів зберігається в таблиці. Інші символи зберігаються у файлі, ім'я

якого збігається з ім'ям файлу таблиці, а розширення файлу — mb

Formatted Memo F Рядок символів довільної довжини (як у типу Memo). Є можливість

вказати тип і розмір шрифту, спосіб оформлення і кольори символів

Graphic G Графіка

Logical L Логічне значення "ІСТИНА" (True) або "НЕПРАВДА" (False)

Auto increment

+ Ціле число. При додаванні до таблиці чергового запису в полі

записується число на одиницю більше, ніж перебуває у відповідному

полі останнього доданого запису

Bytes Y Двійкові дані. Поле цього типу використовується для зберігання

даних, які не можуть бути інтерпретовані Database Desktop

Binary В

Двійкові дані. Поле цього типу використовується для зберігання

даних, які не можуть бути інтерпретовані Database Desktop. Як і дані

типу Memo, ці дані не перебувають у файлі таблиці. Поля типу Binary,

як правило, містять audio-дані

Константа, що визначає тип поля, може бути введена із клавіатури або шляхом вибору типу

поля зі списку, що з'являється при кліку правою кнопкою миші в колонці Туре або при натисканні

клавіші < Пробіл >.

Одне або кілька полів можна позначити як ключові. Ключове поле визначає логічний порядок

проходження записів у таблиці. Наприклад, якщо символьне (тип Alpha) поле Fam (Прізвище)

позначити як ключове, то при виводу таблиці записи будуть впорядковані відповідно до алфавітного

порядку прізвищ. Якщо поле Fam не позначати як ключове, то записи будуть виведені в тому

порядку, у якому вони були введені в таблицю. Варто звернути увагу на те, що в таблиці не може

бути двох записів з однаковим вмістом ключових полів. Тому в розглянутому прикладі ключовими

полями повинні бути поля Fam (Прізвище) і Name (Ім'я). Тоді в таблицю можна буде ввести

інформацію про однофамільців. Однак як і раніше не можна буде ввести однофамільців, у яких

збігаються імена. Тому як ключове поле звичайно вибирають поле, що містить унікальну

інформацію. Для таблиці, що містить список людей, у якості ключового можна вибрати поле Pasp

(Паспорт).

Для того щоб позначити поле як ключове, необхідно виконати подвійний клік в колонці Key.

Варто звернути увагу на те, що ключові поля повинні бути згруповані у верхній частині таблиці.

Якщо дані, для зберігання яких призначене поле, повинні обов'язково бути присутнім у записі,

то варто встановити прапорець Required Field. Наприклад, поле Fam (Прізвище) обов'язково повинне

бути заповнене, у той час як поле Tel (Телефон) може залишатися порожнім.

Якщо значення, яке записується в поле, повинне перебувати в певному діапазоні, то

введенням значень у поля Minimum value (Мінімальне значення) і Maximum value (Максимальне

значення) можна задати границі діапазону.

Поле Default value дозволяє задати значення за замовчуванням, що буде автоматично

записуватися в поле при додаванні до таблиці нового запису.

Поле Picture дозволяє задати шаблон, використовуючи який можна контролювати

правильність інформації, що вводиться у поле. Шаблон являє собою послідовність звичайних і

спеціальних символів. Спеціальні символи перераховані в табл. 1.1.

Під час введення інформації в позицію поля, який відповідає спеціальний символ, будуть

з'являтися тільки символи, дозволені для даного символу шаблона. Наприклад, якщо в позиції

шаблона стоїть символ #, то у відповідному цьому символу позицію можна ввести тільки цифру.

Якщо в позиції шаблона стоїть звичайний символ, то під час вводу інформації в даній позиції буде

автоматично з'являтися зазначений символ.

Наприклад, нехай поле Tel типу А (рядок символів) призначено для зберігання номера

телефону, і програма, що працює з базою даних, припускає, що номер телефону повинен бути

представлений у звичайному виді, тобто у вигляді послідовності згрупованих цифр, які розділені

дефісами. У цьому випадку в поле Picture варто записати шаблон: ###-##-##. При введенні інформації

в поле Tel будуть з'являтися тільки цифри (натискання клавіш із іншими символами ігноруються),

причому після введення третьої і п'ятої цифр у поле будуть автоматично додані дефіси.

Деякі елементи даного поля можуть бути необов'язковими, наприклад, код міста для номера

телефону. Елементи шаблона, що забезпечують ввід необов'язкових даних, беруть у квадратні дужки.

Наприклад, шаблон [(###)]###- ##-## дозволяє вводити в поле номер телефону як з заключеними у

дужки кодом міста, так і без коду.

Таблиця 1.1 - Спеціальні символи, що використовувані при записі шаблонів

Символ шаблона

Припустимий при уведенні символ

*

&

@

*

Цифра Будь-яка буква (прописна або рядкова) Будь-яка буква (автоматично

перетвориться в прописну)

Любий символ (якщо введено букву, то вона автоматично перетвориться в

прописну)

Символ, що випливає за символом "крапка з комою", інтерпретується як

звичайний символ, а не символ шаблона

Будь-яка кількість повторюваних, обумовлених наступною за "зірочкою"

символом шаблона

Шаблони дозволяють не тільки контролювати правильність даних шляхом блокування,

невірних символів, але і забезпечують автоматизацію вводу даних. Це досягається шляхом

вказування в шаблоні у квадратних або фігурних дужках списку припустимих значень вмісту поля.

Наприклад, якщо для поля Address задати шаблон {Львів, Київ, Миколаїв}*@ або [Львів,

Київ, Миколаїв]*@, то під час вводу даних у це поле назва відповідного міста буде з'являтися відразу

після вводу однієї з букв: л, к або м. Відмінність фігурних дужок від квадратних і, отже, цих

шаблонів друг від друга полягає в тому, що в першому шаблоні вміст поля обов'язково повинен

починатися з назви одного з перерахованих у списку міст, а в другому - місто може називатися по-

іншому, однак його назву прийдеться вводити повністю.

Після того як буде визначена структура таблиці, таблицю варто зберегти. Для цього необхідно

нажати кнопку Save As. У результаті відкривається вікно Save Table As. У цьому вікні зі списку Alias

потрібно вибрати псевдонім бази даних, частиною якої є створена таблиця, а в поле Ім'я файлу ввести

ім'я файлу, у якому потрібно зберегти створену таблицю.

Якщо перед тим як нажати кнопку Зберегти встановити прапорець Display table, то в

результаті натискання кнопки Зберегти відкривається діалогове вікно Table, у якому можна ввести

дані в тільки що створену таблицю.

Якщо таблиця бази даних недоступна, то для того щоб ввести дані в таблицю, таблицю

потрібно відкрити. Для цього треба з меню File вибрати команду Open | Table, потім у діалоговому

вікні, що з'явилося, Open table у списку Alias вибрати псевдонім потрібної бази даних і таблицю.

Варто звернути увагу, що таблиця буде відкрита в режимі перегляду, у якому змінити вміст таблиці

не можна. Для того щоб у таблицю можна було вводити дані, потрібно активізувати режим

редагування таблиці, для чого необхідно з меню Table вибрати команду Edit Data.

Якщо під час заповнення таблиці необхідно внести зміни в якесь вже заповнене поле, то варто

вибрати це поле, скориставшись клавішами переміщення курсору, нажати клавішу <F2> і внести

потрібні зміни.

Якщо при введенні даних у таблицю букви алфавіту відображаються невірно, то треба змінити

шрифт, що використовується для відображення даних. Для цього необхідно в меню Edit вибрати

команду Preferences і у діалоговому вікні, що з'явилося, на вкладці General, клацнути на кнопці

Change. У результаті цих дій відкриється діалогове вікно Change Font, у якому потрібно вибрати

інший шрифт. Варто звернути увагу, що в Windows 2000 (Windows XP) використовуються шрифти

типу Open Type, у той час як програма Database Desktop орієнтована на роботу зі шрифтами

TrueType. Після цього треба завершити роботу з Database Desktop, тому що внесені в конфігурацію

зміни будуть дійсні тільки після перезапуску утиліти.

РОЗРОБКА ПРОГРАМИ КЕРУВАННЯ БАЗОЮ ДАНИХ

Далі наведено процес створення програми керування базою даних "Архітектурні пам'ятники

Львова".

Перед тим як приступити безпосередньо до розробки додатка керування базою даних,

необхідно, використовуючи утиліту Database Desktop, створити файл даних (таблицю) і додати до неї

кілька записів. У табл. 2.1 перераховані поля таблиці monuments (monuments - монументи,

пам'ятники).

Таблиця 2.1 - Поля таблиці monuments

Поле Тип Розмір Зміст

Monument A 60 Назва архітектурного пам'ятника (ключ)

Architect A 40 Ім 'я архітектора

Note M 1 Коротка історична довідка

Photo A 12 Ім 'я файлу ілюстрації

Тепер можна приступити до розробки додатка. Методика розробки додатка роботи з базою

даних нічим не відрізняється від методики створення звичайної програми: до форми додаються

необхідні компоненти, встановлюються значення властивостей компонентів, розробляються

необхідні процедури обробки подій.

Додаток роботи з базою даних повинен містити компоненти, що забезпечують доступ до

даних, можливість перегляду і редагування вмісту полів. Компоненти доступу до даних перебувають

на вкладці Data Access палітри компонентів, а компоненти відображення даних — на вкладці Data

Controls.

Забезпечення доступу до бази даних (таблиці)

Доступ до бази даних забезпечують компоненти Database, Table, Query і DataSource, значки

яких перебувають на вкладках Data Access і BDE палітри компонентів (рис. 2.1).

Рисунок 2.1 - Компоненти вкладок Data Access і BDE забезпечують доступ до даних

Доступ до бази даних забезпечують компоненти Database, Table, Query і DataSource, значки

яких перебувають на вкладках Data Access і BDE палітри компонентів (рис. 2.1).

Компонент Database представляє базу даних як єдине ціле, тобто сукупність таблиць, а

компонент Table - одну з таблиць бази даних. Компонент DataSource (джерело даних) забезпечує

зв'язок компонента відображення-редагування даних (наприклад, компонента DBGrid) і джерела

даних, у якості якого може виступати таблиця (компонент Tаblе) або результат виконання SQL-

запиту до таблиці (компонент SQL). Компонент DataSource дозволяє оперативно вибирати джерело

даних, використати той самий компонент, наприклад, DBGrid для відображення даних з таблиці або

результату виконання SQL-запиту до цієї таблиці. У найпростішому випадку, коли база даних являє

собою одну-єдину таблицю, додаток роботи з базою даних повинне містити один компонент Table і

один компонент DataSource.

У табл. 2.3 перераховані властивості компонента Table, а в табл. 2.4 - властивості компонента

DataSource. Властивості перераховані в тому порядку, у якому варто встановлювати їхні значення

після додавання компонентів у форму додатка.

Таблиця 2.3 – Властивості компонента Table

Властивість Визначає

Name

DatabaseName

TableName

TableType

Active

Ім'я компонента. Використовується для доступу до властивостей компонента

Ім'я бази даних, частиною якої є таблиця (файл даних), для доступу до якої

використовується компонент. Як значення властивості варто використати псевдонім

бази даних

Ім'я файлу даних (таблиці даних), для доступу до якого використовується

компонент

Тип таблиці. Таблиця може бути набором даних у форматі Paradox («Paradox),

dBase (ttDBase), FoxPro («FoxPro) або являти собою відформатований текстовий файл

(ttASCII).

Ознака активізації файлу даних (таблиці). У результаті присвоювання властивості

значення True відбувається відкриття файлу таблиці

Під час розробки форми додатка значення властивостей DatabaseName і TabieName задаються

шляхом вибору зі списків. У списку DatabaseName перераховані всі зареєстровані псевдоніми, а в

списку TableName -імена файлів таблиць, які перебувають у відповідному псевдоніму каталозі.

Таблиця 2.4 - Властивості компонента DataSource

Властивість Визначає

Name Ім'я компонента. Використовується для доступу до властивостей

компонента

DataSet Ім 'я компонента, що представляє собою вхідні дані

Властивість DataSet забезпечує зв'язок між компонентом, що представляє собою таблицю або

запит, і компонентами, призначеними для доступу до записів. Наявність цієї властивості дозволяє

вибирати джерело даних. Наприклад, база даних може бути організована таким чином, що таблиця,

яка складається з великої кількості записів, розділена на менші підтаблиці, що мають однакову

структуру. У цьому випадку в додатку кожної підтаблиці буде відповідати свій компонент Table, а

вибір конкретної підтаблиці можна здійснити встановленням значення властивості DataSet.

У табл. 2.5 і 2.6 наведені значення властивостей компонентів Table і DataSource для

розроблювального додатка.

Таблиця 2.5 - Значення властивостей компонента Table

Властивість Значення

Name Table1

DatabaseName Lviv

TableName monuments.db

Active True

Таблиця 2.6 - Значення властивостей компонента DataSource

Властивість Значення

Name DataSourcel

DataSet Table1

Перегляд бази даних

Користувач може переглядати базу даних у режимі форми або в режимі таблиці. У режимі

форми можна бачити тільки один запис, а в режимі таблиці - кілька записів одночасно. Досить часто

ці два режими комбінують. Коротка інформація (вміст деяких ключових полів) виводиться в

табличній формі, а при необхідності бачити вміст всіх полів запису виконується перемикання в

режим форми.

Компоненти, що забезпечують перегляд і редагування вмісту полів бази даних, перебувають

на вкладці Data Controls (рис. 2.3).

Для того щоб забезпечити перегляд бази даних у режимі форми, у форму додатка потрібно

додати компоненти, що забезпечують перегляд і, якщо потрібне, редагування вмісту полів запису,

причому по одному компоненту для кожного поля.

Компонент DBText дозволяє тільки переглядати вміст поля, а компоненти DBEdit і DBMеmо -

переглядати і редагувати. У табл. 2.7 перераховані деякі властивості цих компонентів. Властивості

перераховані в тому порядку, у якому варто встановлювати їхні значення після додавання у форму

додатка.

Рисунок 2.3 - Компоненти перегляду і редагування полів бази даних

Таблиця 2.7 - Властивості компонентів DBText, DBEdit і D BMеmо

Властивість Визначає

Name

DataSource

DataField

Ім'я компонента. Використовується для доступу до

властивостей компонента

Компонент-джерело даних

Поле бази даних, для відображення або редагування якого

використається компонент

Підготовка до виконання роботи.

1. Підготувати бланк звіту з роботи;

2. Опрацювати теоретичний матеріал за темою роботи;

3. Використовуючи теоретичний матеріал дати відповіді на контрольні запитання.

Контрольні питання

1. Що таке база даних?

2. Що таке локальна база даних?

3. Що таке віддалена база даних?

4. Що таке транзакція?

5. Що таке Псевдонім бази даних?

6. За допомогою якої програми можна створити псевдонім БД?

7. Що таке реляційні бази даних?

Порядок виконання роботи

1. Запустити середу програмування Delphi;

2. Використовуючи теоретичний матеріал, створити псевдонім бази даних Lviv.

3. Використовуючи теоретичний матеріал, створити таблицю бази даних monuments.db.

4. Створити програму для взаємодії з базою даних в середовищі Delphi (задача 1)

Задача 1. Розробимо програму, що забезпечує роботу з базою даних "Архітектурні пам'ятники

Львова". Вид форми додатка наведений на рис. 2.4.

Рисунок 2.4 - Форма додатка Архітектурні пам'ятники Львова

Створюється форма в такий спосіб. Спочатку в порожню форму треба додати компоненти

Tаblе і Datasource і встановити значення їх властивостей (табл. 2.8). Значення властивостей варто

встановлювати в тому порядку, у якому вони розміщені у таблиці.

Таблиця 2.8 - Значення властивостей компонентів Tablel і DataSource1

Властивість Значення Коментар

Tablel.DatabaseName Lviv

Псевдонім бази даних (створюється утилітою

BDE Administrator)

Tablel.TableName Monuments.db Таблиця бази даних (створюється утилітою

Database Desktop)

Tablel.Active True

DataSource1.Dataset Tablel

Після настроювання компонентів Table і Datasource у форму потрібно додати три компоненти

DBEdit і компонент DBMеmо. Компоненти DBEdit призначені для перегляду і редагування полів

Name, Architect і Photo, компонент DBMеmо - для перегляду і редагування поля Note. Значення

властивостей компонентів перегляду-редагування полів бази даних наведені в табл. 2.9.

Таблиця 2.9 - Значення властивостей компонентів DBEdit1-3 і DBMemo1

Властивість Компонент

DBEdit1 DBEdit2 DBEdit3 DBMemo1

DataSource DataSource1 DataSource1 DataSource1 DataSource1

DataFieid Monument Architect Photo Note

Так як значенню властивості Active компонента Tаblе1 привласнене значення True, то відразу

після того, як буде привласнене значення властивості DataField, у поле компонента DBEdit з'явиться

вміст відповідного поля першого запису таблиці бази даних. Якщо таблиця не містить даних, поле

залишається незаповненим. Якщо значення властивості Active компонента Table1 дорівнює False, то

в поле компонента DBEdit з'являється його ім'я, значення властивості Name.

Крім компонентів перегляду-редагування полів бази даних, у форму потрібно додати

компонент image, що використовується для перегляду ілюстрацій, і чотири компоненти Label для

виводу пояснювального тексту. Властивості Visible компонентів Image1, Label4 і DBEdit3 варто

привласнити значення False.

Тепер, якщо відкомпілювати і запустити програму, на екрані з'явиться форма, у полях якої

буде перебувати вміст першого запису файлу даних.

Для того щоб мати можливість переглядати інші записи файлу даних, у форму додатка

потрібно додати компонент DBNavigator, значок якого перебуває на вкладці Data Controls.

Компонент DBNavigator (рис. 2.6) являє собою набір кнопок, при кліку на які під час роботи

програми відбувається переміщення покажчика поточного запису до наступного, попереднього,

першого або останнього запису бази даних, а також додавання до файлу даних нового запису,

видалення поточного запису.

Рисунок 2.6 - Компонент DBNavigator

Таблиця 2.11 – Властивості компонента DBNavigator

Властивість Визначає

VisibleButtons Видимі командні кнопки

Name

DataSource

Ім'я компонента. Використовується для доступу до властивостей

компонента

Ім'я компонента, що є джерелом даних. Як джерело даних може

виступати база даних (компонент Database), таблиця (компонент Table)

або результат виконання запиту (компонент Query)

Варто звернути увагу на властивість VisibleButtons. Воно дозволяє сховати деякі кнопки

компонента DBNavigator і тим самим заборонити виконання відповідних операцій над файлом даних.

Наприклад, привласнивши значення False властивості VisibleButtons.nbDelete можна сховати кнопку

nbDelete і тим самим заборонити видалення записів.

Властивості DataSource компонента DBNavigator1 необхідно привласнити значення Table1.

У принципі, після додавання у форму компонента DBNavigator найпростіша програма

керування базою даних готова. Ця програма забезпечує перегляд, редагування, додавання нових і

видалення непотрібних записів.

Тепер розглянемо, що треба зробити, щоб у поле Image1 з'явилося зображення пам'ятника,

інформація про який виведена у формі. Розроблювальний додаток припускає, що зображення

(фотографії) архітектурних пам'ятників перебувають у файлах у тому ж каталозі, що і таблиця бази

даних. Під час додавання інформації в базу даних користувач вводить у поле Photo ім'я файлу

фотографії, а під час перегляду фотографія автоматично з'являється в поле image

У лістингу 2.1 наведений текст модуля програми Архітектурні пам'ятники Львова.

Лістинг 2.1 - База даних "Архітектурні пам'ятники Львова"

unit peter_;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, DBCtrls, Mask,

Db, DBTables, jpeg; // щоб можна було виводити JPG-ілюстрації;

type

TForml = class(TForm)

Table1: TTable;. // база даних - таблиця

DataSource1: TDataSource; // джерело даних для полів редагування-перегляду

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

DBEditl: TDBEdit;

DBEdit2: TDBEdit;

DBMemol: TDBMemo;

Image1: TImage;

DBEdit3: TDBEdit;

DBNavigatorl: TDBNavigator;

Label4: TLabel;

procedure TablelAfterScroll(DataSet: TDataSet);

procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);

procedure DBNavigatorlClick(Sender: TObject; Button: TNavigateBtn)

procedure TablelBeforeOpen(DataSet: TDataSet);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Forml: TForml;

BmpPath: string; //Шлях до файлів ілюстрацій.

// Ілюстрації перебувають у підкаталозі Data каталогу програми.

implementation

{$R *.DFM}

// виводить фотографію в поле Image1

procedure ShowFoto(foto: string);

begin

try

Form1.Image1.Picture.LoadFromFile(BmpPath +foto);

Form1.Image1.Visible:=True;

except

on EFOpenError do

begin

MessageDlg('Файл ілюстрації '+foto+' не знайдений. ', mtInformation, [mbOk], 0) ;

end;

end;

end;

// перехід до іншого запису (наступної, попередньої, першої або останньої)

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);

begin

if form1.DBEdit3.Visible then

begin

form1.DBEdit3.Visible := False;

form1.Label4.Visible:=False;

end;

if Forml.DBEdit3.Text <> ” then

ShowFoto(Form1.DBEdit3.Text)

else

form1.Image1.Visible:=False;

end;

// натискання клавіші в поле Фото

procedure TForml.DBEdit3KeyPress(Sender: TObject; var Key: Char);

begin

if (key = #13) then

if Form1.DBEdit3. Text <>" then

ShowFoto(Form1.DBEdit3.Text) // показати ілюстрацію

else

form1.Image1.Visible:=False;

end;

// клік на компоненті Навігатор

procedure TForml.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

begin

case Button of

nbInsert:

begin

Image1.Visible:=False;// сховати область виводу ілюстрації

DBEdit3.Visible:=True; // показати поле Фото

Label4.Visible:=True; // показати мітку Фото

end;

nbEdit:

begin //редагування запису

DBEdit3.Visible:=True; // показати поле Фото

Label4.Visible:=True; // показати мітку Фото

end;

end;

end;

// перед відкриттям таблиці

procedure TForml.TablelBeforeOpen(DataSet: TDataSet);

begin

BmpPath:=ExtractFilePath(ParamStr(0)) + 'data\'; // отримання поточного каталогу програми

end;

end.

Виклик процедури виводу фотографії (showFoto) під час перегляду бази даних виконує

процедура TForm1.Table1AfterScroll, що забезпечує обробку події AfterScrool для компонента Table1.

Подія AfterScrool відбувається щоразу після переходу до іншого (наступного, попереднього,

першого, останнього) запису таблиці як результат кліка користувача на відповідній кнопці

компонента DBNavigator. Процедура TForml.Table1AfterScroll аналізує вміст поля (photo)

Form1.DBEdit3.Text і, якщо воно не порожнє, що свідчить про наявність посилання на файл

фотографії, виводить ілюстрацію.

При перегляді бази даних поле імені файлу ілюстрації (DBEdit2) і його заголовок (Label4) на

формі не відображаються. Якщо користувач натискає одну із кнопок компонента DBNavigator, то як

результат обробки події onclick викликається процедура TForm1.DBNavigatorlciick, що при кліку

кнопки Додати або Редагувати робить доступним поле DBEdit2, тим самим дозволяючи

користувачеві ввести або змінити ім'я файлу ілюстрації.

Процедуру TForm1.DBEdit3KeyPress обробляє подія OnKeyPress для компонента DBEdits.

Якщо користувач ввів у поле Edit2 (photo) ім'я файлу ілюстрації і нажав клавішу <Enter> (її код

дорівнює 13), то процедура TForm1.DBEdit3KeyPress виводить ілюстрацію шляхом виклику

процедури ShowFoto.

Оформлення звіту

1. Тема і мета роботи.

2. Завдання.

3. Виконання індивідуального завдання.

4. Висновки по роботі.

Література

1. Митчел К. Керман “Программирование и отладка в Delphi Учебный курс”. Вильямс.2002р.

2. Турбо Паскаль 7.0.Киев: Издательская група BHV.

3. Г.В.Поддубный “Введение в програмирование на Delphi. Учебное пособие”.Одеса, 1999р.