
1. Розробка головної форми
Почніть новий проект і зміните наступні властивості порожньої форми, задані по умолчанію:caption = заголовок форми, Name = ім'я форми
Після зміни властивостей відразу збережете модуль і проект в спеціально відведеній для цього теці.
Поместите два компонента TDBGrid (вкладка Data Controls) и два компонента ТDBNavigator.(рис 9)
Перш ніж рухатися далі, зробимо дуже важливий крок. Створимо псевдонім для нашої учбової БД. Псевдонім БД - це просто ім'я БД. Для файл-серверних БД псевдонім визначає шлях доступу до файлів бази даних. Надалі ми, можливо, захочемо змінити його. В цьому випадку нам не доведеться виправляти цей шлях в численних компонентах доступу до даних - досить змінити його в псевдонімі, і компоненти, що все посилаються на псевдонім, будуть пов'язані з новим местомом розміщення даних. Роль псевдонімів особливо велика в клієнт-серверних БД. у яких він містить численні додаткові властивості, керівники доступом до сервера.
За допомогою команди Database - Explorer з середовища головного меню запустите утиліту SQL Explorer, на вкладці Databases вікна, що відкрилося, клацніть правою кнопкою миші на вузлі Database і виберіть команду New в контекстному меню. Утиліта запропонує вибрати тип новостворюваного псевдоніма. Погодитеся з варіантом Standard, пропонованим за умовчанням, - псевдоніми саме цього типу призначені для обслуговування файл-серверних БД з таблицями Paradox (мал. 10).
Рисунок 10- Определение псевдонима
Відразу після цього з'явиться ім'я псевдоніма Standard1, пропоноване за умовчанням, і на вкладці Definition будуть перераховані його властивості. Завиванні користуємося тим. що виділене ім'я Standard1, і відразу замінимий його потрібним. Тепер перейдіть на вкладку Definition і в порожньому полі праворуч від властивості PATH введіть шлях доступу до файлів БД. Клацніть на знов створеному псевдонімі на вкладці Databases правою кнопкою миші і виберіть команду Apply в контекстному меню. У тому, що з'явився після цього діалоговому вікні підтвердите необхідність запам'ятати знов створений псевдонім.
Якщо тепер на вкладці Databases клацнути на значку згорнутого вузла зліва від імені псевдоніма, а потім - на значку згорнутого вузла Tables, ви побачите всі таблиці БД створеної БД. Клацнувши на будь-якій з них і відкривши вкладку Data, ви зможете побачити вміст вибраної таблиці (мал. 11).
Малюнок 11-. Відображення вмісту таблиці у вікні SQL Explorer
1. Модуль даних
Виберіть команду File - New - Others, щоб відкрити вікно сховища об'єктів. і на вкладці New вікна, що відкрилося, двічі клацніть на значку Data Module. У властивість Name модуля даних помістите ім'я DM і збережете модуль у файлі.
Для зв'язку таблиць з БД скористаємося компонентом Tdatabase на вкладці BDE палітри компонентів Delphi: клацніть на нім і потім - на імені модуля DM у вікні дерева об'єктів. У вікні інспектора об'єктів розкрійте список властивості Aliasname і виберіть псевдонім вашої БД. У рядку властивості Databasename напишіть довільне ім'я (наприклад, ААА) так званого локального псевдоніма, який створює компонент Tdatabase.
Локальний псевдонім доступний тільки в тій програмі, в якій використовується компонент Tdatabase. Цей компонент виконує безліч корисних функцій, що забезпечують зв'язок програми з БД. Для файл-серверних систем тільки з його допомогою можна реалізувати транзакції - спеціальний механізм доступу до даних, що підвищує їх достовірність і несуперечність. У клієнт-серверних системах він, крім того, здатний передавати серверу БД ім'я користувача, його пароль і ряд інших параметрів, що оптимізують зв'язок з сервером і ізбавляющих Користувача програми від обов'язкової реєстрації на сервері.
Після визначення псевдоніма БД і створення локального псевдоніма зникне червоний знак питання зліва від компоненту у вікні дерева об'єктів, що свідчить про готовність компоненту до роботи. Оскільки в ріллі простої програмі ми безпосередньо не звертатимемося до компоненту, можна залишити його ім'я Database1. задане але умовчанню, але я все-таки рекомендую змінити його на DB.
У програмі нам знадобляться 2 компоненти Тtable і два компоненти Tdatasource. Розмістите їх в модулі даних, щоб ці компоненти не нагромаджували основне вікно.
Тепер перенесіть у вікно дерева об'єктів компонент Ttable (вкладка Вdе) і «покладете» його на псевдонім AAA. У вікні інспектора об'єктів у властивості Databasename нового компоненту автоматично з'явиться ім'я локального псевдоніма AAA, проте зліва від компоненту у вікні дерева об'єктів буде червоний знак питання, що означає, що компонент Ttable ще не готовий до роботи.
Компонент Ttable є набором даних (НД). Він переважно використовується у файл-серверних системах для доступу до даних з якої-небудь однієї таблиці БД. Щоб підготувати компонент до роботи, необхідно визначити ім'я цієї таблиці: розкрійте список його властивості Tablename і виберіть в нім таблицю. Надалі нам доведеться багато раз звертатися до методів і властивостей цього компоненту, тому зміните його ім'я Table1. задане за умовчанням, на ймення пов'язана з ним таблиця: у рядку властивості Name введіть потрібне ім'я таблиці.
Щоб дані з НД змогла відобразити сітка Dbgrid1 в головному вікні програми, її потрібно зв'язати НД за допомогою спеціального компоненту Tdatasource: виділите його на вкладці Data Access палітри компонентів і потім клацніть на компоненті у вікні дерева об'єктів, щоб пов'язати його з НД.
Тепер підготуємо другу пару Ttable - Tdatasource для відображення даних з таблиці в другій сітці головного вікна: «покладете» на псевдонім AAA набір даних Ttable, а на нього - джерело даних Tdatasource; пов'яжіть НД з таблицею і дайте йому ім'я.
Набори даних зв'язані реляційним відношенням один до багатьом: єдиному запису в першому НД може відповідати довільна кількість записів в другій. Щоб НД «знали» про це і погоджено відображали дані, їх потрібно заздалегідь підготувати. Перейдіть на вкладку Diagram у вікні коди модуля даних (заздалегідь натисніть клавішу F12 для візуалізації вікна коди) і за допомогою миші «перетягнете» компоненти створених таблиць з вікна дерева об'єктів на вкладку Diagram. Перетягання реалізується класичним способом Drag&drop; ліва кнопка миші натискається на компоненті у вікні дерена об'єктів і залишається натиснутій при переміщенні покажчика миші на вкладку Diagram, після чого відпускається. Розташуєте таблиці на вкладці Diagram одну під інший так, як це показано на мал. 13.
Рисунок 12- Окно конструктора связей
Малюнок 13- Розташування таблиць у вікно Data Diagram
Для встановлення зв'язку між таблицями клацніть на кнопці (кнопка Master Detail) панелі інструментів, підведіть покажчик миші у вигляді перекресленого круга до нижньої кромки верхньої таблиці (у цей момент покажчик перетвориться на хрестик), натисніть ліву кнопку миші і. утримуючи її натиснутою, прокреслите лінію до верхньої кромки нижньої таблиці, після чого відпустите кнопку. На екрані з'явиться вікно конструктора зв'язків (мал. 13).
Щоб встановити зв'язок, потрібно вказати зв'язувані поля в батьківській і дочірній таблицях. Щоб змінити поле, потрібно розкрити список Available Indexes у верхній частині вікна і вибрати індекс. Після цього в полі Detail fields з'явиться ім'я поля - клацніть на нім і на імені поля в списку Master Fields, після чого клацніть на кнопці Add (ця кнопка стане доступною тільки Пекле виділення полів зв'язку і перестає бути доступною після клацання на ній). Закрийте вікно конструктора зв'язків клацанням на кнопці ОК.
Після виконання цих Дій між таблицями встановлюється зв'язок один до багатьом по вказаному полю, про що свідчить вил вікна Data Diagram на мал. 14.
Малюнок 14-окно Data Diagram після встановлення зв'язку між таблицями
Клацніть на таблиці у вікні дерева об'єктів і відкроюватимете набір даних: у вікні інспектора об'єктів помістите в його властивість Active значення True.
На цьому початковий етап роботи з вікном модуля даних закінчений, і нам потрібно перейти до головного вікна програми (клацніть на вкладці з ім'ям головної форми у вікні коди і натисніть клавішу F12). За допомогою команди File - Include Unit пов'яжіть модуль головного вікна з модулем даних. Для верхньої сітки Dbgrid1 розкрійте список властивості Datasource і виберіть в нім пункт Datasource1 - сітка тут же наповниться даними з НД. Так само пов'яжіть нижню сітку з джерелом даних Datasource2. Зв'яжіть навігатора баз даних Dbnavigator1 в нижній частині вікна з джерелом Datasource1.
1. Створення об'єктів-стовпців
Для створення інтерфейсу з користувачем бажано замість назв стовпців таблиці відображати шапку із зрозумілими названімі стовпців на рідній для користувача мові. Для створення об'єктів-стовпців потрібно викликати редактор стовпців (мал. 16) - для цього перейдіть до форми головного вікна і двічі клацніть мишею на сітці Dbgrid1.
Малюнок 16- Вікна редактора стовпця
Як і у разі об'єктів-полів, діє наступне правило: якщо для сітки не створений жоден об'єкт-стовпець, в ній відображаються всі не «заховані» об'єкти-поля; навпаки, якщо створений хоч би один об'єкт-стовпець, сітка відображатиме дані тільки з об'єктів-стовпців.
Щоб створити об'єкт-стовпець, потрібно клацнути на кнопці (кнопка Add New) редактора стовпців або натиснути клавішу Ins. Виділивши (клацанням) компонент Tcolumn, що з'явився у вікні, ми за допомогою інспектора об'єктів можемо міняти його властивості.
Скрійте поля, що містять унікальні ключі з головної і підлеглої таблиць, використавши властивість Visible->false і створіть написи в шапці українською мовою, використовуючи властивість Title->caption. Зміните шрифт і оформлення сітки.
Контрольні питання:
1. Створення псевдоніма
2. Відображення інформації таблиці
3. Зміна заголовків таблиці
4. Зміна оформлення
5. Створення об'єктів-стовпців
Практична робота №8 Створення обчислюваних і підстановлювальних полів
Мета: Вивчити властивості, методи і події компонентів, вивчити типи полів, навчитися звертатися до значення поля, проводити перевірку введеного в поле значення, формувати текстове представлення поля.
Хід роботи: