л.р.2 - Создание базы данных формата
Paradox средствами Delphi (BDE)
*********** ОТЧЕТ по лаб 2_1 (с изменениями) *************
Проект позволяет просматривать и редактировать все 5 таблиц
базы данных.
БД создавалась при помощи DataBase Desktop:
- таблицы (см описания)
- первичные и вторичные индексы,
- ссылочные целостности,
- шаблоны,
- проверка вводимых значений,
- создание таблицы подстановок,
- пароли.
------------
Примечание: все это выполнено для алиаса kassa4.
Для БД, подключенной через алиас kassa5 удалено
все, кроме таблиц и паролей, а для алиаса kassa_
удалены и пароли.
1. Структура таблиц Paradox7:
==============================
Табл ap_users
--------------------------------
Имя поля Тип Размер Ключ Вторичн
индекс
--------------------------------
Id_users S *
Name A 100
Email A 30 I_Email
Pass A 20
Contactfio A 30
Id_country S I_Id_country
Pindex A 10
City A 20
Paddress A 50
Phone A 12
Fax A 12
Etc A 50
-----------------------------
Табл countries
--------------------------------
Имя поля Тип Размер Ключ
--------------------------------
Id_country S *
Country A 20
----------------
Табл kategorii
--------------------------------
Имя поля Тип Размер Ключ
--------------------------------
Id_kategor S *
Kategor A 30
--------------
Табл lek_list
--------------------------------
Имя поля Тип Размер Ключ Вторичн
индекс
--------------------------------
Lek_id S *
Id_kategor S I_kategor_cena
Nazvan1 A 30 I_Nazvan
Nazvan2 A 30 I_Nazvan
Nazvan3 A 40 I_Nazvan
Cena $ I_kategor_cena
-----------------
Табл sklad
--------------------------------
Имя поля Тип Размер Ключ
--------------------------------
Lek_id S *
Ostatok S I_Ostatok
Stellaj A I_Stellaj
===========================================
2.Описание созданных ссылочных целостностей.
============================================
a)- lek_list.id_kategor - kategorii.id_kategor (m:1) имя = Kategor
свойства: Cascade, Strict Referential Integrity.
Проверки:
1. Попытка ввести лекарство категории= 13
(или переправить категорию на 13) в табл lek_list
=> отвергает (не закрывает таблицу).
2. Попытка удалить категорию=11 из таб kategorii: отвергает.
т.е. связь работает
b) -lek_list.lek_id -> sklad.lek_id (1:1) имя:lek_id
Проверка: попытка исправить lek_list.lek_id отвергается,
если новое значение lek_list.lek_id отсутствует в табл.
sklad, потому что sklad- родительская таблица.
дочерняя - где m вхождений,
родительская - где 1.
===================================
3. Алиас = kassa4
==================================
4.Описание используемых свойств таблиц.
=======================================
--- 4.0. Шаблоны для ввода данных: ----
Полям Phone и Fax табл ap_users назначен шаблон: #### ### ###
--- 4.1. проверка правильности вводимых значений Validity Cheks: ----
- все ключи (id_ ): min = 1 max = 32000
---- ap_users -----
id_users, id_country - min = 1 max = 32000
---- lek_list -----
lek_id, id_kategor - в табл lek_list min = 1 max = 32000
cena min=0 max= 10000.
---- sklad:----
lek_id - min = 1 max = 32000
ostatok - min = 0 max = 32000
-------- 4.2. Создание таблицы подстановки Table Lookup. --------
Для поля ap_users.id_Country - таблица Countries (id_country)
Проверяется в DB DeskTop (Ctrl-Space - для показа табл Lookup)
------ 4.3. Создание вторичных индексов Secondary Indexes --------
I_Email - поле Email, I_Id_country - поле Id_country табл ap_users
I_Id_kategor - поле Id_kategor, I_nazvan - поля nazvan1,2,3 табл lek_list
I_Ostatok, I_Stellaj - Ostatok, Stellaj табл sklad
--- 4.4.Установление целостности на уровне ссылок Referential Integrity ---
lek_list.id_kategor - kategorii.id_kategor (m:1) имя = Kategor
свойства: Cascade, Strict Referential Integrity.
Проверки:
1. Попытка ввести лекарство категории= 13
(или переправить категорию на 13) в табл lek_list
=> отвергает (не закрывает таблицу).
2. Попытка удалить категорию=11 из таб kategorii: отвергает.
т.е. связь работает
lek_list.lek_id -> sklad.lek_id 1:1
дочерняя - где m вхождений,
родительская - где 1.
=====================================
5. Пароли:
ap_users, lek_list
- пароль допуска: krolik (Master password)- можно менять все.
- slon - доступ к табл lek_list (Insert и delete), но недоступно поле pass.
- zubr -> ТОлько для чтения все поля, а cena - полный доступ.
Пароли спрашивает DeskTop и Делфи-программа.
Проверено: пароли работают, как описано.
***************** Приложение *************************
А. Как установить на другой машине:
--------------
1. В какую-нибудь папку (например, E:\tempo) распаковать архив Apteka2_1.rar
В результате - в папке E:\tempo\Apteka будут все файлы
Делфи-проекта,
а в папке E:\tempo\Apteka\BD_kassa - база данных, где находятся все таблицы.
2. Зарегистрировать алиас kassa4, для этого вызвать BDE Admin и
- В меню: Object\New, driver name оставить - STANDARD щелкн ОК
- В правом окне, строка PATH пощелкать и установить путь к БД,
т е E:\tempo\Apteka\BD_kassa (папка BD_kassa должна распахнуться)
щелк ОК
- Перейти на закладку Configuration, щелк по кресту Configuration
затем: Dravers - Native - Paradox
- В правом окне, строка LANGDRIVER из списка выбрать Pdox ANSI Cyrillic
- Раскрыть SYSTEM - Init и тоже выбрать LANGDRIVER = Pdox ANSI Cyrillic
- Сделать правый щелчок на Configuration и выбрать Apply (если доступно)
- Вернуться на закладку DATABASES, правый щелчок по STANDARD1, выбрать -
переименовать. Новое имя - kassa4.
- Еще правый щелчок по STANDARD1, выбрать - Apply, затем - ОК
В результате будет создан алиас= kassa4 (постоянный).
Фокусы с Pdox ANSI Cyrillic можно отложить на потом (если будут проблемы
с русификацией таблиц.)
3. Запустить Apteka2_1.exe Из папки с проектом Делфи.
если алиас создан нормально, появится окно этой программы. Можно кнопкой Open
открыть любую таблицу (основной пароль= krolik, другие пароли см. в отчете)
Таблицы можно просматривать и редактировать, используя компонент DBNavigator.
Для редактирования:
- щелкнуть "Редактировать запись"
- исправлять в клеточках DBGrid
- для фиксации исправлений щелкнуть "Сохранить исправления".
4. Если постоянный алиас не нужен, то можно создавать временный, при помощи
DB DeskTop. Меню\Tools\Alias Manager.
- Щелкнуть New, вписать kassa4 в окно Database alias , затем
щелкнуть save as, в появившемся окошке выбрать из раскрывающегося списка
kassa4, затем сохранить файл IDAPI32.CFG в папке E:\tempo\Apteka\BD_kassa
Однако когда алиас станет негодным - прога не запустится и придется повторить
создание алиаса.
--------------------------------------------------
Screens