Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Установка связей между компонентами и БД. Создание меню




Задание псевдонимов в BDE Administrator.

Основные сведения о ссылочной целостности. Задание индексов.

Порядок выполнения работы

ЛАБОРАТОРНАЯ РАБОТА №3

Контрольные вопросы

1. Программная навигация по записям таблицы.

2. Методы для работы с записями таблицы (пример использования).

3. Доступ к значениям полей данных в программе (пример).

4. Осуществление ввода данных пользователем с помощью компоненты Edit (пример).

5. Функции преобразования типов данных.

6. Вывод рассчитанных значений на форму приложения.

7. Создание обработчика события для компоненты Borland Delphi.

8. Создание отчёта c помощью компоненты TRVTableConnect.

9. Компоненты, обеспечивающие вывод данных в отчёт.

5. Требования к отчёту

Отчёт оформляется на листах формата А4, на титульном листе указывается название работы, дисциплина, студент, выполнив­ший работу и преподаватель, принявший отчет.

Отчёт должен включать в себя следующие пункты:

1. Постановка задачи (формулировка задания).

2. Условные обозначения, расчетные зависимости.

3. Структура базы данных.

№ п/п Наименование по­ля Тип Размер Пример
  Фамилия FAM Символь­ный 20 симво­лов Иванов
... …   …   …  

 

4. Результаты. Привести листинги всех программных модулей, заголовочных файлов и файлов форм в текстовом виде (осу­ществляется выбором опции view as text из контекстного ме­ню формы), печать отчёта до внесения каких-либо изменений в БД и после этих изменений.

 

 

ОБРАБОТКА ИНФОРМАЦИИ БАЗЫ ДАННЫХ, ИМЕЮЩЕЙ СТРУКТУРУ «master-detail». ИЗУЧЕНИЕ ОСНОВ SQL.

Цели работы:

1. Освоение методики обеспечения ссылочной целостности в базах данных, состоящей из 2-х и более таблиц;

2. Разработка программных средств реализации основных операций управле­ния БД.

1. Изучить методические указания.

2. Определить структуру базы в соответствии с вариантом задания (см. методические указания к л/р №2), обеспечив связь с дополнительной таблицей (ее данные определяются студентами самостоятельно) типа «один-ко-многим».

3. Создать файл БД на диске с помощью утилиты Database Desktop.

4. Разработать приложение в среде Borland Delphi для работы с созданной структурой.

5. Оформить отчёт.

 

Для выполнения задания, необходимо сформировать в Database Desktop (DBD) структуры 2-х таблиц типа Paradox7, между которыми будет организована связь «один-ко-многим».

     

Рис. 1 Структура основной и подчиненной таблиц в Paradox7.

Данные структур сохраним в папке WorkDir с именами stud.db и ozen.db.

Ссылочная целостность обеспечивает однозначное соответствие значений в поле одной таблицы значениям связанного поля в другой. Кроме обеспечения равенства значений в связанных полях при вводе, ссылочная целостность обеспечивает сохранение этого условия при внесении изменений в связанные поля подчиненной таблицы, отображая их в основной. В Paradox она также запрещает удаление записей в основной таблице, если они используют данные из подчиненной таблицы.

Итак, в организации ссылочной целостности присутствуют 2 таблицы, одна из них содержит данные (подчиненная), другая использует эти данные (основная). Осуществляется она через поля основной и подчиненной таблиц. При этом в основной таблице можно использовать только ключевые поля, а в подчиненной – индексированные, причем выбранные для связи поля автоматически становятся индексированными. Из основной таблицы можно организовывать связь с несколькими подчиненными.

Для организации связи 2-х таблиц с помощью Data Desktop в окне задания структуры, когда в нем находится структура подчиненной таблицы (в нашем случае, ozen.db), следует у списка Table properties (характеристики таблицы) выбрать значение Referential Integrity (ссылочная целостность), после чего определить Define связь. В открывшемся окне задаем характеристики связи таблиц, выбрав в левом окне поле для организации связи, в правом – имя требуемой таблицы (двойным щелчком мыши). Естественно, что количество выбранных полей из каждой таблицы и их типы должны совпадать.

 

 

Рис. 2 Связь подчиненной и основной таблицы по ключевым полям.

 

Здесь же можно задать характеристики связи: 1) правило обновления (update rule) – для определения варианта обновления значений в подчиненной таблице при изменении или удалении связанных значений в основной (каскадный, запрещенный); 2) выключатель защиты целостности (strict referential integrity) – для определения невозможности изменения данных в таблицах, для которых установлена ссылочная целостность. После определения параметров связи задаем имя связи.

Идентифицируем параметры всех связей основной таблицы:

Имя связи Поле младшей таблицы Старшая таблица Update rule Strict Referential Integrity
Cascade Prohibit
sv Zach stud ·   Ö

 

Теперь зададим вторичные индексы. Данная операция используется для ускорения поиска в таблицах необходимой информации по значениям в конкретных полях. Индексирование в Paradox приводит к созданию специальных файлов по каждому индексу, такой файл содержит записи, включающие значения индекса (одно или несколько полей) и указатель на соответствующую запись в таблице. Выбрав нужное значение индекса, можно затем по указателю найти и саму запись.

Для задания вторичных индексов с помощью DBD, следует у списка Table properties (характеристики таблицы) выбрать значение Secondary Indexes (вторичные индексы), после чего определить Define поля, используемые в индексе, их последовательность (!!!) и ряд характеристик: 1) уникальность (unique); 2) режим обновления (maintained); 3) чувствительность к регистру (case sensitive); 4) порядок сортировки (descending). По завершению формирования индекса задаем имя индекса.

Предварительно сформируем таблицу, в которой перечислим все индексы и их характерные особенности:

Имя индекса Поля Unique Maintained Case sensitive Descending
ind Naim   Ö    
Zach Zach Oz   Ö    

 

Отметим, что для задания каждого индекса следует выполнять всю последовательность выше указанных действий. Нельзя, например, переместить все поля, используемые в индексах, в правый список, а затем выполнить оставшиеся действия, так как в этом случае будет создан 1 индекс сразу по всем выделенным полям.

 

 

Рис. 3 Задание вторичного индекса.

Располагать все таблицы БД, а также программы СУБД желательно в отдельной папке, которой к тому же следует задать псевдоним для более простого обращения к данным (до сих пор псевдонимы нами не были использованы).

Для задания псевдонима можно воспользоваться утилитой BDE Administrator, постав­ляемую в составе большинства продуктов корпорации Inprise (Borland). Утилита BDE Administrator находится в меню "Пуск" Прогpaммы -> Borland Delphi -> BDE Administrator.

В левой части окна следует открыть страницу Databases, содержащую список псевдонимов, в правой части появятся его характеристики.

Рис. 4. Окно BDE.

 

Для добавления псевдонима задаем либо Object.New, либо по правой кнопке мыши в дополнительном меню выбираем New. Из списка драйверов выбираем значение Standard, используемое для создания псевдонима БД в формате Paradox.

Изменив имя псевдонима, рассмотрим набор его характеристик: 1) type – название драйвера, на основе которого был создан псевдоним, 2) default driver – название драйвера, который подключается к файлу БД первым, 3) enable bcd – признак перевода значений десятичных полей в двоично-десятичное представление, 4) path – путь к папке, где находятся таблицы БД.

 

Теперь разместив на форме диалога компонент Menu с палитры компонентов Стандарт, сформируем простое меню, задавая названия пунктов меню свойству Items. Для Поиск – подменю: SQL и фильтрация, для Сортировкапо фамилии, по наименованию дисциплин и пункт Выход. Обратите внимание на порядок задания имен, в свойстве Name каждого пункта будет отображен этот номер.

Модуль пункта меню Выход будет самым информативным: Close();

 

Предыдущие приложения (л/р№1, 2) разрабатывались для ведения данных одной таблицы. Здесь же, одна из связанных таблиц является головной (master, таблица stud), а другая вспомогательной, детализирующей (detail, таблица ozen).

Итак, разместив в окне 2 комплекта Table, DataSource и средства отображения данных DBGrid, зададим их цепочку связи, которую можно представить схемой (рис.6). Связь с БД устанавливается в итоге значением true свойства Active.

Для связи в форме этих таблиц, временно разорвем связь, указав для вспомогательной таблицы ozen значение false для свойства Active.

Рис. 5 Форма диалога приложения БД

 
 


Рис. 6 Схема взаимодействия компонентов Delphi с БД.

Далее в свойстве MasterSource компонента Table, настроенного на вспомогательную таблицу, установите имя головной таблицы. После этого щелкните на свойстве MasterFields. Откроется окно редактора связей полей (Field Link Designer). Индексировать таблицу надо так, чтобы индекс включал ключевое поле связи Zach. После этого можете восстанавливать связь с БД (Active=true) и запустить приложение.

Теперь немного об удобстве вода данных в форму. Для полей просмотра в DBGrid можно в свойстве Columns задать значение свойства ButtonStyle поля равным cbsAuto и тогда при редактировании данных автоматически будет появляться выпадающий список, из которого пользователь может выбирать соответствующее значение (например, для поля group).

На форму можно добавить кнопки Добавить, Удалить, Сохранить, Отменить с соответствующими обработчиками событий:

Table1.Append; \\ метод, добавляющий новую запись в БД

Table1.DeleteRecords(arCurrent); \\ удаление записи, на которой стоит курсор текущей записи

Table1.Post; \\ сохранение изменений в БД

Table1.Cancel; \\отмена действий пользователя

 

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

If (Application.MessageDlg (

“Действительно хотите удалить запись?”,

“Подтвердите удаление записи”,

MB_YESNO + MB_ICONQUESTION) = IDYES) then

Table1.Delete;

 

который после положительного ответа на вопрос программы удаляет текущую запись.

 




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 622; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.