- •Определение базы данных.
- •2) Таблица, как основной объект бд.
- •3) Представление.
- •4) Хранимые процедуры.
- •5) Типы данных.
- •Лекция №4. 24.02.12
- •Оператор create table
- •Использование индексов
- •Оператор alter
- •Оператор drop
- •Ограничение столбца
- •Ограничение домена
- •Лекция №5 02.03.12
- •Ограничение сущностей
- •Ограничение ссылочной целостности
- •Представление
- •Хранимые процедуры
- •Создание и изменени хранимой процедуры
- •Виды хранимых процедур
- •Лекция №6 11.03.12
- •Триггеры
- •Лекция №7 16.03.12
- •Инструменты
- •Компоненты
- •Компонент ibDatabase
- •Механизм транзакций
- •Лекция №6 23.03.12
- •Компонент DataSource
- •Компоненты визуализации
- •Лекция 7 30.03.12 Сортировка набора данных в компоненте ibTable
- •Сортировка набора данных ibQuery
- •Фильтрация наборов данных
- •Фильтрация запиcей одной таблицы
- •Фильтрация записей, связанных по внешнему ключу таблицы
- •Механизмы поиска в наборах данных
- •Лекция 8 06.04.12
- •Создание отчета при помощи мастера
- •Создание отчета в режиме конструктора
- •Лекция 9 13.04.12 Базовые классы для работы с данными.
- •Пространство имен ado .Net
- •Типы пространства имен System.Data
- •Использование классов DataColumn, DataTable, DataRow Класс DataColumn
- •Лекция 9 20.04.12
- •Класс DataTable
- •Класс DataRow
- •Лекция 27 апреля Работа со свойством ItemArray
- •Использование классов DataSet и DataRelation
Триггеры
Триггер представляет собой процедуру, которая находится на сервере БД и вызывается автоматически при модификации записей БД. В отличии от хранимых процедур триггеры нельзя вызывать из приложения клиента, а так же передавать им параметры и получать от них результаты. Шаблон создания триггера:
CREATE TRIGGER trigger_name FROM {table_name|view_name}
[ACTIVE | INACTIVE]
{BEFORE | AFTER} {DELETE | INSERT | UPDATE}
[POSITION number]
AS {trigger_body}
Оператор CREATE TRIGGER вводит определение триггера, которое состоит из заголовка и тела триггера. В заголовке указывается имя триггера, имя таблицы или представления, с которым/ой связывается триггер, а так же информация о том, когда и какие действия должны выполняться. Тело триггера включает необязательный список объявление переменных, а так же набор операторов на языке триггеров и процедур InterBase, заключенных в операторные скобки BEGIN … END.
В заголовке триггера можно употребить ключевое слово ACTIVE или INACTIVE. В первом случае триггер будет работать в указанных в его заколовке ситуациях, во втором не будет. Ключевое слово INACTIVE используется в исключительно отладочных целях.
Следующие две группы ключевых слов задают шесть вариантов событий, при наступлении которых триггер активизируется: BEFORE DELETE – перед удалением, BEFORE INSERT – перед вставкой, BEFORE UPDATE – перед обновления, или же AFTER – перед этими действиями.
С одной и той же таблицей может быть связано несоклько триггеров. Для того, чтобы определить очередности их автивизации в заголовке можно указать конструкцию POSITION. В этой конструкции указывается целое неотрицательное число. Чем это число меньше, тем раньше выполняется триггер. Тело триггера начинается с ключевого слова AS, за которым располагается блок операторов. Шаблон тела:
AS
BEGIN
[объявление переменных]
список операторов
END;
Переменные объявляются следующим образом:
DECLARE VARIABLE имя_переменной тип_данных
Для доступа к значениям столбца используется конструкции формата:
OLD.<имя_столбца>
NEW.<имя_столбца>
Первая позволяет обратиться к старому столцу (до внесения изменения), а вторая к новому значению столбца (после внесения изменения).
Лекция №7 16.03.12
Тема: продолжение
Рассмотрим использование триггера для реализации ограничений ссылочной целостности и для занесения в ключевые столбцы уникальных значений. В связи с тем, что Interbase не поддерживает автоинкрементные поля при создании ключевого столбца, требующего уникальности значений, рекомендуется поступать следующим образом:
При создании таблицы задать ключевой столбец целочисленного типа;
Создать генератор, который при обращении к нему возвращает уникальное целочисленое значение;
Создать триггер, который при добалвении к таблице новой записиобращается к генератору и заносит возвращаемое им значение в ключевое поле.
Пример:
CREATE TABLE Store
( S_Code INTEGER NOT NULL PRIMARY KEY);
CREATE GENERATOR GenStore;
SET GENERATOR GenStore TO 1;
CREATE TRIGGER TRStore FOR Store ACTIVE BEFORE INSERT
AS
BEGIN
NEW.S_Code = GEN_ID(GenStore,1);
END
Тема: Средства для работы с базами данных
Система C++ Builder не имеет своего формата таблиц БД, тем не менее она обеспечивает мощную поддержку большого количества различных СУБД. Средства C++ Builder, предназначенные для работы с БД, можно разделить на два вида:
Инструменты;
Компоненты.
К инструментам относятся специальные программы и пакеты, обеспечивающие обслуживание БД вне разрабатываемых приложений. Компоненты предназначены для создания приложений, осуществляющий операций с БД.