Створення таблиці через Database Desktop Paradox 7
Таблиці створюються за допомогою утиліти, що входить до складу Delphi - Database Desktop.
Утиліта Database Desktop дозволяє виконувати всі необхідні при роботі з базами даних дії. Вона забезпечує створення, перегляд і модифікацію таблиць баз даних різних форматів (Paradox, dBASE, Microsoft Access). Крім того, утиліта дозволяє виконувати вибірку інформації шляхом створення запитів.
Для того, щоб створити нову таблицю, потрібно вибором з меню Tools команди Database Desktopзапустити Database Desktop. Потім у вікні утиліти Database Desktop, що з'явилося, треба з меню Fileвибрати команду New і в списку, що з'явився, вибрати тип створюваного файлу — Table. Потім в діалоговому вікні Create Table, що відкрилося, слід вибрати тип створюваної таблиці (значенням за умовчанням є тип Paradox 7).
В результаті відкривається діалогове вікно Create Paradox 7 Table, в якому можна визначити структуру записів таблиці.
Для кожного поля таблиці необхідно задати ім'я, тип і, якщо потрібно, розмір поля. Ім'я поля використовується для доступу до даних. Як ім'я поля, яке вводиться в колонку Field Name,можна використовувати послідовність з букв латинського алфавіту і цифр завдовжки не більше 25 символів.
Тип поля визначає тип даних, які можуть бути поміщені в поле. Тип задається введенням в колонку Турі символьної константи. Типи полів і відповідні ним константи приведені в табл.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дозволяє задати шаблон, використовуючи який можна контролювати правильність інформації, що вводиться в поле. Шаблоном є послідовність звичайних і спеціальних символів. Спеціальні символи перераховані в табл. 17.2.
Під час введення інформації в позицію поля, якою відповідає спеціальний символ, з'являтимуться тільки символи, допустимі для даного символу шаблону. Наприклад, якщо у позиції шаблону коштує символ #, то у відповідну цьому символу позицію можна ввести тільки цифру. Якщо у позиції шаблону коштує звичайний символ, то під час введення інформації в даній позиції автоматично з'являтиметься вказаний символ.
Наприклад, хай поле Tel типу А (рядок символів) призначено для зберігання номера телефону, і програма, що працює з базою даних, припускає, що номер телефону повинен бути представлений в звичайному вигляді, тобто у вигляді послідовності згрупованих, розділених дефісами цифр. В цьому випадку в полі Picture слідзаписати шаблон: ###-##-##. При введенні інформації в полі Tel з'являтимуться тільки цифри (натиснення клавіш з іншими символами ігноруються), причому після введення третьої і п'ятої цифр в полі будуть автоматично додані дефіси.
Таблиця 2. Спеціальні символи, використовувані при записі шаблонів
Символ шаблону | Допустимий при введенні символ | ||
* & @ *. | Цифра Будь-яка буква (прописна або рядкова) Будь-яка буква (автоматично перетвориться в прописну) Будь-яка буква (автоматично перетвориться в рядкову) Будь-який символ Будь-який символ (якщо введена буква, то вона автоматично перетвориться в прописну) Символ, наступний за символом "крапка з комою", інтерпретується як звичайний символ, а не символ шаблону Будь-яка кількість тих, що повторюються, визначуваних наступним за "зірочкою" символом шаблону | ||
Деякі елементи даних поля можуть бути необов'язковими, наприклад, код міста для номера телефону. Елементи шаблону, що забезпечують введення необов'язкових даних, беруть в квадратних дужок. Наприклад, шаблон [(###)]###-##-## дозволяє вводити в поле номер телефону як з укладеним в дужки кодом міста, так і без коду.
Шаблони дозволяють не тільки контролювати правильність що вводяться в поле даних шляхом блокування введення невірних символів, але і забезпечують автоматизацію введення даних. Це досягається шляхом вказівки в шаблоні в квадратних або фігурних дужках списку допустимих значень вмісту поля.
Наприклад, якщо для поля Address задати шаблон { Санкт-Петербург, Москва, Вороніж}*@ або [Санкт-Петербург, Москва, Вороніж]*@, то під час введення даних в це поле назва відповідного міста з'являтиметься відразу після введення однієї з букв: з, м або ст. Відмінність фігурних дужок від квадратних і, отже, цих шаблонів один від одного полягає в тому, що в першому шаблоні вміст поля обов'язково повинен починатися з назви однієї з перерахованих в списку міст, а в другому — місто може називатися по-іншому, проте його назву доведеться вводити повністю.
Після того, як буде визначена структура таблиці, таблицю слід зберегти. Для цього необхідно натиснути кнопку SaveAs. В результаті відкривається вікно Save TableAs. У цьому вікні із списку Aliasпотрібно вибрати псевдонім бази даних, частиною якої є створена таблиця, а в полі Ім'я файлуввести ім'я файлу, в якому потрібно зберегти створену таблицю.
Якщо перш ніж натиснути кнопку Зберегтивстановити прапорець Display table,то в результаті натиснення кнопки Зберегтивідкривається діалогове вікно Table, в якому можна ввести дані в тільки що створену таблицю.
Якщо таблиця бази даних недоступна, то для того, щоб ввести дані в таблицю, таблицю потрібно відкрити. Для цього треба з меню Fileвибрати команду Open | Table,потім в діалоговому вікні Open, що з'явилося, tableв списку Aliasвибрати псевдонім потрібної бази даних і таблицю. Слід звернути увагу, що таблиця буде відкрита в режимі перегляду, в якому змінити вміст таблиці не можна. Для того, щоб в таблицю можна було вводити дані, потрібно активізувати режим редагування таблиці, для чого необхідно з меню Tableвибрати команду Edit Data.
Дані в поля записи вводяться з клавіатури звичайним способом. Для переходу до наступного поля потрібно натиснути клавішу <Enter>. Якщо поле є останнім полем останнього запису, то в результаті натиснення клавіші <Enter> в таблицю буде доданий ще один запис.
Якщо під час заповнення таблиці необхідно внести зміни до якогось вже заповненого поля, то слід вибрати це поле, скориставшись клавішами переміщення курсора, натиснути клавішу <F2> і внести потрібні зміни.
Про мову введення
Якщо при введенні даних в таблицю букви російського алфавіту відображаються невірно, то треба змінити шрифт, використовуваний для відображення даних. Для цього необхідно в меню Editвибрати команду Preferencesі в діалоговому вікні, що з'явилося, у вкладці General, клацнутина кнопці Change. В результатіцих дій відкриється діалогове вікно Change Font,в якому потрібно вибрати русифікований шрифт. Слід звернути увагу, що в Windows 2000 (Windows XP) використовуються шрифти типу Open Type, тоді як програма Database Desktop орієнтована на роботу з шрифтами TrueType. Тому в списку шрифтів потрібно вибрати русифікований шрифт саме TrueType. Після цього треба завершити роботу з Database Desktop, оскільки внесені до конфігурації зміни будуть дійсні тільки після перезапуску утиліти.
Програма управління базою даних
Тепер можна приступити до розробки додатку. Методика розробки додатку роботи з базою даних нічим не відрізняється від методики створення звичайної програми: до форми додаються необхідні компоненти, встановлюються значення властивостей компонентів, розробляються необхідні процедури обробки подій.
Додаток роботи з базою даних повинен містити компоненти, що забезпечують доступ до даних, можливість перегляду і редагування вмісту полів. Компоненти доступу до даних знаходяться на вкладці Data Access палітри компонентів, а компоненти відображення даних — на вкладці Data Controls.
Доступ до бази даних (таблиці)
Доступ до бази даних забезпечують компоненти Database, Table, Query і DataSource, значки яких знаходяться на вкладках Data Accessі BDEпалітри компонентів (мал.6).
мал.6. Компоненти вкладок Data Access і BDE забезпечують доступ до даним
Компонент Database представляє базу даних як єдине ціле, тобто сукупність таблиць, а компонент Table — одну з таблиць бази даних. Компонент DataSource (джерело даних) забезпечує зв'язок компоненту відображення-редагування даних (наприклад, компоненту DBGrid) і джерела даних, яке може виступати як таблиця (компонент Tаblе) або результат виконання SQL-запиту до таблиці (компонент SQL). Компонент DataSource дозволяє оперативно вибирати джерело даних, використовувати один і той же компонент, наприклад, DBGrid для відображення даних з таблиці або результату виконання SQL-запиту до цієї таблиці. Механізм взаємодії компонентів відображення-редагування даних з даними через компонент DataSource ілюструє мал. 17.7.
У простому випадку, коли база даних має одну таблицю, додаток роботи з базою даних повинен містити один компонент Table і один компонент DataSource.
У табл.5 перераховані властивості компоненту Table, а в табл.6 — властивості компоненту DataSource. Властивості перераховані в тому порядку, в якому слід встановлювати їх значення після додавання компонентів у форму додатку.
Таблиця 5. Властивості компоненту Table
Властивість | Визначає | ||
Name Database NameTable Name Table Type Active | Ім'я компоненту. Використовується для доступу до властивостей компоненту Ім'я бази даних, частиною якої є таблиця (файл даних), для доступу до якої використовується компонент. Як значення властивості слід використовувати псевдонім бази даних Ім'я файлу даних (таблиці даних), для доступу до якого використовується компонент Тип таблиці. Таблиця може бути набором даних у форматі Paradox («Paradox), dBase (ttDBase), FoxPro («FoxPro) або бути форматованим текстовим файлом (ttASCII). Ознака активізації файлу даних (таблиці). В результаті привласнення властивості значення True відбувається відкриття файлу таблиці | ||
Під час розробки форми додатку значення властивостей DatabaseName і TabieName задаються шляхом вибору із списків. У списку DatabaseName перераховані всі зареєстровані псевдоніми, а в списку TabieName -імена файлів таблиць, які знаходяться у відповідному псевдоніму каталозі.
Таблиця .6. Властивості компоненту DataSource
Властивість | Визначає | ||
Name | Ім'я компоненту. Використовується для доступу до властивостей компоненту | ||
DataSet | Ім'я компоненту, що є вхідними даними | ||
Властивість DataSet забезпечує зв'язок між компонентом, що є таблицею або запитом, і компонентами, призначеними для доступу до записів. Наявність цієї властивості дозволяє вибирати джерело даних. Наприклад, база даних може бути організована таким чином, що таблиця, що складається з великого числа записів, розділена на декілька підтаблиць, що мають однакову структуру. В цьому випадку в додатку кожній підтаблиці відповідатиме свій компонент Table, а вибір конкретної підтаблиці можна здійснити установкою значення властивості DataSet.
У табл. 7 і 8 приведені значення властивостей компонентів Table і DataSource для застосування, що розробляється.
Таблиця 7. Значення властивостей компоненту Table
Властивість | Значення | ||
Name | Table1 | ||
DatabaseName | Peterburg | ||
TableName | monuments . db | ||
Active | True | ||
Таблиця 8. Значення властивостей компоненту DataSource
Властивість | Значення | ||
Name DataSet | DataSourcel Table1 | ||
Зв'язок головної і допоміжної таблиці
Дві таблиці можуть бути зв’язані по ключу. Одна із зв’язаних таблиць являється головною (master), а друга – допоміжною (detail).
А зараз зв’яжемо ці таблиці. В підлеглій таблиці властивість Active=false. Далі у властивості MasterSourse компонента Table, налаштованого на допоміжну таблицю, встановити ім’я головної таблиці. Після цього клацнути на властивості MasterFields. Відкриється вікно редактора зв’язку полів (Field Link Designer). В ньому зліва у вікні Detail Fields розміщені імена полів допоміжної таблиці, але тільки тих, по яких таблиця індексована. Зліва у вікні Master Fields розміщені поля головної таблиці. Виділти в одному і другому вікні ключові поля. При цьому активізується кнопка Add, і після клацання по ній ключові поля перенесуться у вікно – Joined Fields. В кінці формування зв’язків натиснути ОК і у властивості Master Fields компонента Table2 з’явиться текст – зв’язана поля. Після цього можна відновити зв’язок з базою даних (Active=True) і запустити додаток.
Проглядання бази даних
Користувач може проглядати базу даних в режимі форми або в режимі таблиці. У режимі форми можна бачити тільки одну запис, а в режимі таблиці -- декілька записів одночасні. Досить часто ці два режими комбінують. Коротка інформація (вміст деяких ключових полів) виводиться в табличній формі, а при необхідності бачити вміст всіх полів запису виконується перемикання в режим форми.
Компоненти, забезпечуючий перегляд і редагування вмісту полів бази даних, знаходяться на вкладці Data Controls(мал.8).
Мал. 8. Компоненти перегляду і редагування полий бази даних
Режим форми
Для того, щоб забезпечити проглядання бази даних в режимі форми, у форму додатку потрібно додати компоненти, що забезпечують перегляд і, якщо потрібно, редагування вмісту полів запису, причому по одному компоненту для кожного поля.
Компонент DBText дозволяє тільки проглядати вміст поля, а компоненти DBEdit і DBMеmо — переглядати і редагувати. У табл.9 перераховані деякі властивості цих компонентів. Властивості перераховані в тому порядку, в якому слід встановлювати їх значення після додавання у форму додатку.
Таблиця 9. Властивості компонентів DBText, DBEdit і DBMето
Властивість | Визначає | ||
Name DataSource DataField | Ім'я компоненту. Використовується для доступу до властивостей компоненту Компонент-джерело даних Поле бази даних, для відображення або редагування якого використовується компонент | ||
(Розказується як створити БД"Архітектурні пам'ятники Санкт-Петербурга", і які компоненти по порядку витягувати на форму)
Як приклад використання компонентів DBEdit і DBMето розглянемо програму, яка забезпечує роботу з базою даних "Архітектурні пам'ятники Санкт-Петербурга". Вид форми додатку приведений на мал. 9.
Мал. 9. Форма додатку Архітектурні пам'ятники Санкт-Петербурга
Таблиця 11. Значення властивостей компонентів DBEdit1 -DBEdit3 і DBMemo1
Властивість | Компонент | |||||
DBEdit1 | DBEdit2 | DBEdit3 | DBMemo1 | |||
DataSource | DataSource1 | DataSource1 | DataSource1 | DataSource1 | ||
DataFieid | Monument | Architec | Photo | Note | ||
Оскільки значенню властивості Active компоненту Tаblе1 привласнено значення True, то відразу після того, як буде привласнено значення властивості DataFieid, в полі компоненту DBEdit з'явиться вміст відповідного поля першого запису таблиці бази даних. Якщо таблиця не містить даних, поле залишається незаповненим. Якщо значення властивості Active компоненту Tabiei рівне False, то в полі компоненту DBEdit з'являється його ім'я, значення властивості Name.
Окрім компонентів перегляду-редагування полів бази даних, у форму потрібно додати компонент image, який використовується для проглядання ілюстрацій, і чотири компоненти Label для виведення тексту пояснення. властивості Visible компонентів Image1, Label4 і DBEdit3 слід привласнити значення False.
Тепер, якщо відкомпілювати і запустити програму, на екрані з'явиться форма, в полях якої знаходитиметься вміст першого запису файлу даних.
Для того, щоб мати можливість проглядати інші записи файлу даних, у форму додатку потрібно додати компонент DBNavigator, значок якого знаходиться на вкладці Data Controls(мал. 17.10). Компонентом DBNavigator (мал. 17.11) є набір кнопок, при клацаннях на яких під час роботи програми відбувається переміщення покажчика поточного запису до наступного, попереднього, першого або останнього запису бази даних, а також додавання до файлу даних нового запису, видалення поточного запису.