Добавление/редактирование/удаление данных.
Цель работы: познакомить с принципами формирования и выполнения операций добавления, редактирования и удаления данных.
Для добавление данных откройте нужную таблицу и перейдите на вкладку Data(данные). Для добавления новой записи нужно нажать на кнопку с «+», для удаление - «-», для редактирования выделенной записи - «стрелка вверх».
Для применения служит кнопка (после этого добавление записи будет прописано в скрипте).
Для сохранения записей в контейнере(т.е. проведения транзакции) нажмите на кнопку с зеленой галкой(вверху окна, рядом с кнопкой с молнией).
Примечание:
Если в таблице имеются внешние ключи(foreign keys), то следует сначала заполнить таблицы, на которые ссылаются эти ключи.
ЛАБОРАТОРНАЯ РАБОТА №6
Создание генераторов и триггеров. Каскадные воздействия.
Цель работы: научиться создавать, ставить на выполнение, редактировать и удалять триггеры и генераторы.
Триггер — это процедура, автоматически исполняемая SQL-сервером при наступлении события "обновление", "удаление" или "добавление" новой записи таблицы.
По отношению к инициализирующему их событию различают два типа триггеров:
> выполняемые до или после наступления события;
> автоматически обеспечивающие каскадные воздействия в дочерних таблицах при изменении, удалении записи в родительской таблице.
Нельзя вызывать триггер непосредственно из программы, передавать ему входные параметры и возвращать их значения. Триггеры всегда реализуют действие.
Ø Создание триггеров
Триггер создается командой Database->New trigger, после чего появится следующее окно:
В поле Name указывается название триггера, в For Table — для какой таблицы создается триггер, Position – указывает порядок триггера( триггер с наименьшим номером выполняется раньше), Type – время срабатывания триггера (before(до)/after(после)insert(вставка)/update(обновление)/delete(удаление)).
Создадим триггер для родительской таблицы Realty, который при изменении значения ее первичного ключа будет автоматически изменять значение внешнего ключа дочерней таблицы Lease, другими словами, если в таблице Realty изменилось значение поля Adr, то триггер изменит значение поля Adr в соответствующей записи таблицы Lease.
1. Database->New trigger и заполните форму, как на рисунке выше.
2. Для проведения транзакции по созданию триггера выполнить.
Для того, чтобы триггер работал без ошибок, следует удалить внешний ключ в таблице Lease. Примечание: если при удалении внешнего ключа возникает ошибка типа «Невозможно удалить, т.к. INDEX такой-то используется», то попробуйте вырубить Delphi, если он запущен, и в IBExpert переконнектиться с контейнером.
Ø Создание генераторов
Генераторы предназначены для обеспечения уникальности значений ключевых столбцов и используются совместно с триггерами.
Генератор создается командой Database->New generator. В появившемся окне нужно задать имя генератора(Name) и начальное значение(Value). Далее для его использования следует создать триггер.
Создание генератора для таблицы Owner:
1. в созданном ранее триггере указываем таблицу Owner;
2. выберите тип(Type) триггера 'before insert'(перед вставкой) и впишите между begin/end код new.non = gen_id( GenStore ,1); Таким образом, перед каждым добавлением записи в таблицу Owner для поля non будет генерироваться уникальный код в зависимости от текущего значения генератора.
Лабораторная №7