3.Создать операторный триггер, который будет фиксировать в отдель- но организованной таблице тип, пользователя и дату операции при изменении, удалении или удалении данных из таблицы учета мате- риальных ценностей.
4.Создать системный триггер на уровне схемы, который будет фикси- ровать в отдельно организованной таблице информацию о пользова- телях и объектах, структуру которых создают.
Вариант 18
1.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице стоимость ремонта и код мастера, который выполнил ремонт при добавлении записи в таблицу регистрации вы- полненных работ, причем если информация о мастере была уже до- бавлена, то стоимость ремонта суммируется, иначе добавляем новую запись.
2.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице старое и новое наименования этапа работы при изменении данных в таблице с описанием возможных этапов ра- бот.
3.Создать операторный триггер, который будет фиксировать в отдель- но организованной таблице тип, пользователя и дату операции при изменении, удалении или удалении данных из таблицы мастеров.
4.Создать системный триггер, который будет фиксировать в отдельно организованной таблице информацию об отключаемых пользовате- лях и датах операции.
Вариант 19
1.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице данные о лекарстве, которые удаляются.
2.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице номера чеков и наименования лекарства при добавлении записи в таблицу СОСТАВ ЧЕКА с условием, что коли- чество проданного лекарства больше 10.
3.Создать операторный триггер, который будет фиксировать в отдель- но организованной таблице тип, пользователя и дату операции при изменении, удалении или удалении данных из таблицы с общей ин- формацией о чеке.
4.Создать системный триггер, который будет фиксировать в отдельно организованной таблице информацию о подключаемых пользовате- лях и датах операции.
Вариант 20
1.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице информацию об исполнителе, при измене- нии даты приема на работу.
85
2.Создать строковый триггер, который будет фиксировать в отдельно организованной таблице старое и новое содержания документа, если в таблице регистрации документов удаляется или изменяется запись.
3.Создать операторный триггер, который будет фиксировать в отдель- но организованной таблице тип, пользователя и дату операции при изменении, удалении или удалении данных из таблицы учета испол- нения документов.
4.Создать системный триггер, который будет фиксировать в отдельно организованной таблице информацию о пользователях, запускающих экземпляр БД, и датах операции.
Лабораторная работа №7
СОЗДАНИЕ КЛИЕНТСКОЙ ЧАСТИ ПРИЛОЖЕНИЯ ДЛЯ ПРОСМОТРА, РЕДАКТИРОВАНИЯ ДАННЫХ БД. ВЫЗОВ ХРАНИМЫХ ПРОЦЕДУР ИЗ КЛИЕНТСКОЙ ЧАСТИ
Цель работы – научиться создавать клиентское приложение для работы с базой данных с применением встроенных инструментов в среде Delphi 7.
Содержание работы:
1.Выполнение всех заданий по ходу лабораторной работы.
2.Выполнение индивидуальных заданий.
Пояснения к выполнению работы
Для создания клиентского приложения в Delphi 7 используем пример базы данных в табличном пространстве DB_Books, которая была создана в лабораторной работе №1.
При выполнении примеров и заданий обращайте внимание на соответ- ствие названий таблиц и других объектов проекта.
В данной работе при создании клиентского приложения будем исполь- зовать встроенные инструменты для работы с данными (в Delphi 7 – вклад-
ка Data Controls).
Если данный проект был выполнен в лабораторной работе с СУБД MS SQL Server, то в нем необходимо лишь перенастроить свойство Connection String на соединение с Oracle согласно пункту 4 и перекомпилировать проект.
ВDelphi 7:
1.В новом проекте создадим модуль данных (меню File – New – DataModule). Переименуем форму в DM (свойство Name – DM).
86
2.В основной форме (например, Form1, переименовать ее в MainForm) в коде добавить описание модуля DM, для этого после ключе- вого слова USES в конце списка поставить запятую и дописать название программного модуля, например UNIT2, который соответствует созданной форме DM.
3.На форму DM с вкладки ADO добавить компонент ADOConnection (название, например ADOConnection1), 5 компонентов типа ADOTable (переименовать компоненты в ADOPurchases, ADOBooks, ADOAuthors, ADODeliveries, ADOPublish), с вкладки Data Access 5 компонентов типа DataSource (переименовать компоненты в DataPurchases, DataBooks,
DataAuthors, DataDeliveries, DataPublish).
4. У компонента ADOConnection1 настроить свойства:
Connected String = нажать кнопку Build\ выбрать Поставщик
данных – Microsoft OLE DB Provider for Oracle
Источник данных – ORCL Пользователь – ADMIN_BOOKS
Пароль – worlds
Получится в результате – Provider=MSDAORA.1;User ID=ADMIN_BOOKS;Data Source=Orcl;Persist Security Info=False
LoginPrompt = True; Connected = True.
5. У ADOAuthors изменить следующие свойства:
Connection на ADOConnection1;
TableName на Authors; Active на True.
6. У DataAuthors изменить следующие свойства (это будет ссылка на таблицу):
DataSet на ADOAuthors.
7. У ADOPurchases изменить следующие свойства:
Connection на ADOConnection1; TableName на Purchases;
Active на True.
8. У DataPurchases изменить следующие свойства (это будет ссылка на таблицу):
DataSet на ADOPurchases.
9. У ADOBooks изменить следующие свойства:
Connection на ADOConnection1;
TableName на Books; Active на True.
10. У DataBooks изменить следующие свойства (это будет ссылка на таблицу):
87
DataSet на ADOBooks.
11. У ADODeliveries изменить следующие свойства:
Connection на ADOConnection1; TableName на Deliveries;
Active на True.
12. У DataDeliveries изменить следующие свойства (это будет ссылка на таблицу):
DataSet на ADODeliveries.
13. У ADOPublish изменить следующие свойства:
Connection на ADOConnection1; TableName на Publishing_house;
Active на True.
14. У DataPublish изменить следующие свойства (это будет ссылка на таблицу):
DataSet на ADOPublish.
15.На основной форме (MainForm) добавить компонент Меню с вкладки Standart. В редакторе меню сделать первый пункт «Работа с таб- лицами» и в подменю пункты «Авторы», «Книги», «Издательства», «По- ставщики», «Поставки».
16.Создать пять форм, каждую из которых назвать (изменить свойство
Name): FormAuthors, FormPurchases, FormBooks, FormDeliveries, FormPublish. В главной форме, в коде добавить описание этих форм, для этого после ключевого слова USES в конце списка через запятую дописать названия программных модулей, которые соответствуют описанным фор- мам. В каждой из созданных форм в коде добавить описание модуля DM, для этого после ключевого слова USES в конце списка поставить запятую и дописать название программного модуля, например UNIT2, который со- ответствует созданной форме DM.
17. На основной форме в подпунктах меню в соответствующих мето- дах Click вызвать соответствующие формы с помощью кода:
для FormAuthors: DM.ADOAuthors.Open;
FormAuthors:=TFormAuthors.Create(Application);
FormAuthors.Show; для FormPurchases:
DM.ADOPurchases.Open;
FormPurchases:=TFormPurchases.Create(Application);
FormPurchases.Show; для FormBooks:
DM.ADOBooks.Open;
FormBooks:=TFormBooks.Create(Application);
FormBooks.Show;
88
для FormDeliveries: DM.ADODeliveries.Open;
FormDeliveries:=TFormDeliveries.Create(Application);
FormDeliveries.Show; для FormPublish:
DM.ADOPublish.Open;
FormPublish:=TFormPublish.Create(Application);
FormPublish.Show;
18.На формы FormAuthors, FormPurchases, FormBooks, FormDeliveries, FormPublish добавить с вкладки Data Controls по паре компонент типа
DBGrid и DBNavigator. Настроить у DBGrid и DBNavigator свойство
DataSource для связи с соответствующим источником данных.
19.Проверить работу приложения.
20.На форму FormBooks с вкладки Data Controls добавить 3 компонен-
та типа DBEdit, 2 компонента типа DBLookupComboBox.
У1-го компонента DBEdit изменить свойства:
Name на DBE_Code_Book; DataSource на DM.DataBooks; DataField на Code_book.
У 2-го компонента DBEdit изменить свойства:
Name на DBE_Title_book; DataSource на DM.DataBooks; DataField на Title_book.
У 3-го компонента DBEdit изменить свойства:
Name на DBE_Pages; DataSource на DM.DataBooks;
DataField на Pages.
У 1-го компонента DBLookupComboBox изменить свойства:
Name на DBL_Code_author; DataSource на DM.DataBooks; DataField на Code_author; ListSource на DM.DataAuthors; ListField на name_author; KeyField на Code_author.
У 2-го компонента DBLookupComboBox изменить свойства:
Name на DBL_Code_Publish; DataSource на DM.DataBooks; DataField на Code_publish; ListSource на DM.DataPublish;
ListField на Publish;
KeyField на Code_publish.
89