align="justify">
-Створення тригера CREATE OR ALTER TRIGGER CHITATEL_BI0 FOR CHITATELBEFORE INSERT OR UPDATE POSITION 0 (NEW. nomer_chitatelya is null) then. nomer_chitatelya=gen_id (gen_chitatel, 1);
Подібним чином створюємо інші таблиці. Задаємо для цих таблиць ключові поля, вторинні ключі, розробляємо генератори і тригери (див. Додаток 1).
2.5 Програмування бізнес-логіки
У курсовому проекті клієнтський додаток для інформаційної системи Бібліотека буде дотримуватися концепції тонкого клієнта raquo ;. Тобто, вся бізнес - логіка повинна бути реалізована на сервері бази даних Firebird. РСУБД надає широкий вибір варіантів програмування бізнес - логіки дозволяючи написати перегляди, збережені процедури, тригери, винятки. Засобами IBExpert створюємо всі необхідні перегляди (див. Лістинг 1). Далі приступаємо до створення збережених процедур на введення, зміна та видалення даних для кожної таблиці. Крім цього необхідно створити збережені процедури на вибірку даних для складання звітів.
У IBExpert завантажив SQL редактор, вибравши меню Tools- gt; SQL Editor. У вікні написав скрипт для створення процедур на введення, зміна та видалення даних таблиці сhitatel:
-процедура на видалення даних з таблиці chitatel
CREATE OR ALTER PROCEDURE DEL_CHIT (_chitat integer) FROM chitatel (nomer_CHITATELYA =: n_CHITAT); ^
Потім створюємо процедуру на додавання або зміна запису.
CREATE OR ALTER PROCEDURE ADD_CHIT (varchar (20), varchar (15), varchar (15), varchar (21), _ doma smallint, varchar (10)) INTO chitatel (chitatel. familiya_chitatelya, chitatel. imya_chitatelya, chitatel. otchestvo ,. ulica, chitatel. nomer_doma, chitatel. telefon) (: familiya ,: name ,: otchestvo ,: ulica ,: n_doma ,: tel) ;; ^ OR ALTER PROCEDURE RED_CHITATEL (
familiya varchar (20),
name varchar (10), varchar (14), varchar (20), _ doma smallint, varchar (10), _ chit integer) chitatelnomer_chitatelya =: n_chit, _doma =: n_doma, _chitatelya= : familiya, _chitatelya =: name, =: otchestvo, =: ulica, =: tel (nomer_chitatelya =: n_chit); sqlcode - 530 dokey_ne_ice;
end ^
Повний список збережених процедур представлений в таблиці 3.
Таблиця 3. Назва та призначення процедур
Назва процедуриНазначеніеAdd_chitДобавленіе запису в таблиці чітателіAdd_biblioДобавленіе запису в таблиці бібліотекаріAdd_vyda4Добавленіе запису в таблиці видача кнігAdd_otdelДобавленіе запису в таблиці відділи кнігAdd_knigДобавленіе запису в таблиці кнігіDel_chitУдаленіе запису в таблиці чітателіDel _knigУдаленіе запису в таблиці кнігіDel _otdelУдаленіе запису в таблиці відділи кнігDel _biblУдаленіе записи в таблиці бібліотекаріDel _vyda4aУдаленіе запису в таблиці видача кнігRed_chitatelІзмененіе запису в таблиці чітателіReg _otdelІзмененіе запису в таблиці відділи кнігReg _knigІзмененіе запису в таблиці кнігіReg _biblІзмененіе запису в таблиці бібліотекаріReg _vyda4Ізмененіе запису в таблиці видача книг
3. Розробка клієнтського додатка
Частина розробленого інтерфейсу і виконання різних дій при роботі з БД будемо розглядати на прикладі таблиці Читач так як, інтерфейс інших таблиць а так само дії над ними практично однакові.
. Виконуємо команду File- gt; New- gt; Other і вибираємо значок Data Module на вкладці New.
2. У створений модуль DB переносимо компоненти IBDatabase1 і IBTransaction1.
. Налаштовуємо властивості DatabaseName, DefaultTransaction для компонента IBDatabase1 і властивість DefaultDatabase для компонента IBTransaction1.
. У створений модуль FBDataModule переносимо набори даних TIBQuery. Формуємо запити до всіх головних таблиць, переглядам, процедурам налаштувавши властивість Query- gt; SQL.
. У той же контейнер переносимо компонентs TIBDataSource
. Пов'язуємо джерела даних із запитами і таблицями в властивості DataSet.
. Додаємо в модуль даних компонент IBStoredProc1 (рис.3) для реалізації збережених процедур, налаштувавши властивості Database і Transaction
Малюнок 3. Наповнення модуля DB.
Даний DataModule нічого очікувати бути єдиним. Додаток буде складатися з безлічі форм, до яких відповідно будуть підключені різні DataModule.
Наступним етапом є розміщення візуальних компонентів з подальшим їх налаштуванн...