Добавление/редактирование/удаление данных.


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

 

Для добавление данных откройте нужную таблицу и перейдите на вкладку 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