Порядок выполнения задания 1. 1. Используя навыки построения базы данных, полученных на предыдущих лабораторных работах, сформировать три пользовательских схемы (эмуляция распределенной
1. Используя навыки построения базы данных, полученных на предыдущих лабораторных работах, сформировать три пользовательских схемы (эмуляция распределенной базы данных, состоящей из трёх узлов). Распределить, созданные для свое предметной области, таблицы по этим схемам.
2. Реализовать распределенные запросы с использованием оператора UNION.
3. Реализовать распределенные транзакции.
4. Пример главной формы представлен на рис. 6.4. Рабочие формы должны вызываться из главной формы через меню.
Рис. 6.4 – Пример главной формы
5.Каждая таблица должна иметь собственную дочернюю форму в приложении (рис. 6.5). Исключением является таблица связи SUBJ_LECT (какие предметы читаются конкретными преподавателями). Пример экранной формы для этой таблицы приведен на рис. 6.6.
Рис. 6.5 – Пример типовой рабочей формы
Общие требования к формам. Заголовок формы должен соответствовать содержимому таблицы. Для просмотра данных в табличном виде используется компонент TDBGird. Для полей редактирования используются компоненты TEdit (для полей типа Varchar2), TMaskEdit (для полей типа Number) и TDateTimePicker (для полей типа Date). Значения первичных ключей и информацию о дате создания записи (DAT_CRE) и пользователе (ID_CRE) выводить на отдельной закладке “Системная информация” в полях TEdit (не доступных для редактирования ни при каких обстоятельствах).
Требования к работе с данными. Для запроса данных использовать обзор, созданный для соответствующей таблицы. Запрос необходимо писать в свойстве SQL компонента ADOQuery1.
При перемещении по записям в таблице DBGrid1 значения в полях редактирования на закладках “Основные параметры” и “Системная информация” должны меняться в соответствии с активной записью.
Рис. 6.6 – Пример рабочей формы с мастер-деталь отношением
Требования к работе с кнопками. После нажатия кнопки “Сохранить” или “Удалить” должен вызываться соответствующий метод пакета, закрепленного за таблицей, для которой сделана текущая форма.
После нажатия кнопки удалить должно появляться диалоговое окно с вопросом: “Удалить указанную запись?” и кнопками «Да» и «Нет». При нажатии кнопки «Нет» диалоговое окно закрывается и ничего не происходит. При нажатии «Да» вызывается метод удаления из пакета.
Методы пакетов вызываются в конструкции try…except…end с использованием компонента TADOStoredProc. В блоке try…except транзакция инициализируется и завершается вызовом Commit для транзакции. Если при вызове пакета произошла ошибка, то в блоке except…end должен сработать откат транзакции (Rollback).
Пример вызова операторов для работы с транзакциями:
DataModule1.ADOConnection1.BeginTrans;
DataModule1.ADOConnection1.CommitTrans;
DataModule1.ADOConnection1.RollbackTrans;
Отдельное пояснение к рис. 6.6. При нажатии кнопки “Удалить” из списка предметов удаляется выбранный предмет (используется метод из пакета). При нажатии кнопки “Добавить” появляется диалоговое окно (рис. 6.7) со списком всех предметов. Из списка выбирается один предмет, и после нажатия кнопки “Выбрать” диалоговое окно закрывается и выбранный предмет добавляется в список (используется метод из пакета).
Рис. 6.7 – Диалоговое окно для добавления предмета
Проверка введенных значений. Для предотвращения ввода некорректных значений в поля редактирования необходимо использовать специальные компоненты TMaskEdit (для данных типа Number) с заданием маски, запрещающей ввод любых символов кроме цифр и разделяющих знаков. Количество вводимых цифр также должно указываться в соответствии с типом данных (Number(10) – 10 знаков, Number(10,2) – тоже 10 знаков, так как 2 означает количество знаков после запятой в общем количестве цифр, равном 10).
Требования к отображению кнопок. Поля на закладке “Основные параметры” по умолчанию недоступны для редактирования. Они должны становиться доступными для редактирования только при нажатии одной из кнопок “Добавить” или “Изменить”. Причем при нажатии кнопки “Изменить” поля должны очиститься для ввода новых значений вставляемой записи.
После нажатия на кнопку “Сохранить” или “Отмена” поля опять становятся недоступными для редактирования.
6.Также необходимо управлять свойством кнопок Enabled согласно схеме в таблице 6.1. Поле нажатия кнопок “Сохранить” и “Отмена” значения Enabled выставляются “по умолчанию”.
Таблица 6.1
Матрица видимости кнопок управления
Событие | Добавить | Изменить | Удалить | Сохранить | Отмена |
По умолчанию | Enabled | Enabled | Enabled | Disabled | Disabled |
Добавить | Disabled | Disabled | Disabled | Enabled | Enabled |
Изменить | Disabled | Disabled | Disabled | Enabled | Enabled |
Задание 2.Разработать пять различных отчетов с использованием многотабличных запросов, группировок, калькуляций.