Меню

Что такое генератор в ibexpert

Создание Базы Данных

Главная Книги Карта сайта Форум
Программы
Microsoft Visual Studio
Delphi 2010
Turbo Delphi
Delphi 2007
Delphi 10 Lite
Delphi 7 Lite
Delphi 2010 For PHP
Delphi 2010 For PHP Academic Edidion
MIDIePascal
PascalABC.NET
Borland C++ Builder Enterprise 6.0
VirtualBox
Virtual PC
Windows Virtual PC x86/X64
DialogBlocks
Hex-Rays Decompiler
Executable Password
InstallShield
Visual Fortran
Microsoft Visual FoxPro
Testing Framework
Oracle Maestro
Rave Reports
Restorator 2007
Setup Studio
Syser Debugger
UltraEdit
Visual Assist
Demeanor
WinHex
CaliberRM SDK
Ida Pro

Все программы проверены антивирусом
Касперский 2014
Назад &nbsp &nbsp Далее

Наше окно должно выглядеть, примерно, вот так.

Нажмём значок молния или + . Появится окно (рис. 30).

В нижней части окна, Создание таблицы, представлен листинг SQL-запроса. Жмём кнопку Commit, если нет ошибок. Если есть ошибки Откатить. После этого все атрибуты таблицы пронумеруются и появятся дополнительные закладки (рис. 31).

Приступим к созданию генератора (счетчика). Производим двойной щелчок левой кнопкой мыши на атрибуте KEY. Появляется окно Редактирование поля KEY (рис. 32). В нем нам надо установить флаг Не пустое, так как данный атрибут будет первичным ключом. Первичный ключ может хранить только уникальные значения.

Далее в этом же окне, переходим на вкладку Автоинкремент, ниже появятся дополнительные вкладки, они для нас и будут представлять интерес (рис. 33).

Устанавливаем флаг Создать генератор, доступными становятся поля:

  • Имя генератора — оставляем предложенное программой название: GEN_TELEPHON_SPRAVOCCHNIK_ID;
  • Начальное значение – оставляем 0.

Делаем активной вкладку Триггер и устанавливаем флаг Создать триггер. Окно изменит свой вид, в нем появится SQL-командана создание триггера (рис. 34).

Теперь при создании новой записи номер ей будет присваиваться автоматически. Выполнять данное действие будет триггер, который будет срабатывать перед вставкой новой записи. Нажимаем ОК.
Появится окно Changing field для подтверждения внесенных изменений. B верхней части этого окна (Список действий) перечисляется список внесенных изменений. В нижней части (Оператор) расположены SQL-команды для выполнения операции (рис. 35).

Теперь нам необходимо создавать первичный ключ. Делаем активной вкладку Ограничения (рис. 36).

Появляются дополнительные вкладки. Щелкаем правой кнопкой мыши в свободном пространстве окна Таблица и в выпадающем меню выбираем пункт Новый первичный ключ (рис. 37).

Появится новая запись, отвечающая за первичный ключ. Автоматически первичному ключу присвоится имя — PK_TELEPHON_SPRAVOCCHNIK (рис. 38).

Теперь необходимо установить, для какого атрибута создается первичный ключ. Щелкаем левой кнопкой мыши в поле На поле, и щёлкнем стрелку вниз. Появится окно (рис. 39).

И выберем, из списка Available fields, KEY. Нажимаем стрелку вправо, поле KEY окажется справа в списке Included fields. Закрываем нажатием крестика. В пустой ячейке выйдет KEY.

Нажимаем Ctrl+F9 или кнопку Compile (пиктограмма с изображением молнии). Появится окно Compiling Constraints, в котором отображаются SQL-команды на создание первичного ключа, а также комментарии по поводу запроса (Списка действий) (рис. 40).

Нажимаем кнопку Close. Делаем активной вкладку Поля и видим, что в таблице TELEPHON_SPRAVOCCHNIK появился первичный ключ (запись KEY с изображением ключа) (рис. 41).

Ну, всё таблица TELEPHON_SPRAVOCCHNIK создана.

Источник

Что такое генератор в ibexpert

Название работы: Триггеры, генераторы, исключения

Категория: Лабораторная работа

Предметная область: Информатика, кибернетика и программирование

Описание: Студент получает индивидуальный вариант исходных данных с кратким описанием предметной области, который используется при выполнении всех лабораторных работ. При этом каждая очередная лабораторная работа является продолжением выполненной ранее и поэтому они должны обязательно выполняться последовательно. Варианты заданий к лабораторной работе №5 № варианта Имя пользователя Имя файла БД Имя таблицы Бизнес-правило для поля 1 TEM001 SLRY.FDB Цех Дата_поступления 2 TEM002 STUFF.FDB Собрано День_недели 3 TEM003 STUFFPLUS.FDB Изделия Наименование 4 TEM004 TELEPHONE.

  1. Лабораторная работа №5. Триггеры, генераторы, исключения
    1. Цель работы

Изучить используемые в Firebird триггеры, генераторы и исключения. Получить навыки работы с триггерами, генераторами и исключениями с помощью команд SQL и с помощью программы «IBExpert».

Студент получает индивидуальный вариант исходных данных с кратким описанием предметной области, который используется при выполнении всех лабораторных работ. При этом каждая очередная лабораторная работа является продолжением выполненной ранее и поэтому они должны обязательно выполняться последовательно.

Все операции выполняются с помощью приложения «IBExpert». Отчет создается в редакторе «OpenOffice.pro».

  1. Теоретические сведения
    1. Генераторы (Generators)

Генераторы используются для генерации уникальных номеров, используемых в ключевых полях (автоинкрементных полях). То есть они реализуют те же функциональные возможности в таблицах Firebird, что и поля с автоматическим приращением в других СУБД. Можно указать, чтобы числа генерировались, начиная с заданного начального значения.

Пример создания генератора:

CREATE GENERATOR MyGenerator;

SET GENERATOR MyGenerator TO 1000 ;

Генераторы непосредственно не привязываются к какому-либо полю. Они просто позволяют генерировать уникальные числа. Для этого используется функция Gen_ID() , встроенная в Firebird, которая генерирует целочисленные значения. Она берет генератор в качестве первого параметра и значение шага в качестве второго. Обычно приращение равно 1.

Обращаться к генератору можно только через функцию Gen_ID() .

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

  • клиентам не разрешается размещать заказы на сумму, превышающую их лимит кредита;
  • сведения о выполненных заказах хранятся в течение шести месяцев, а затем удаляются;
  • нельзя выдавать читателю новые книги, пока он не вернет взятых ранее;
  • каждый раз, когда продается какой-нибудь товар, для служащего, оформившего продажу, и для отдела, в котором этот служащий работает, на стоимость проданного товара увеличивается значение определенного поля, используемого для вычисления премии; в случае возврата всего или части проданного товара, значение этого поля соответствующим образом должно уменьшиться;
  • каждый раз, когда приходит новая поставка, количество поставленного товара на складе увеличивается на количество товара в поставке.

Такие правила называются бизнес-правилами. В первом стандарте SQL считалось, что эти правила выходят за рамки ответственности СУБД и за их реализацию отвечает прикладная программа, осуществляющая доступ к базе данных. Впервые в 1986 году в СУБД Sybase было введено понятие триггер, что позволило включить реализацию бизнес-правил в базу данных.

С любым событием, вызывающим изменение содержимого таблицы, можно связать сопутствующее действие (триггер), которое СУБД должна выполнять при каждом возникновении события. Триггер – это группа операторов языка SQL, которые автоматически выполняются при вставке, модификации или удалении записи.

В СУБД Firebird можно создавать триггеры, работающие при следующих шести условиях:

  • до вставки записи (BEFORE INSERT);
  • после вставки записи (AFTER INSERT);
  • до удаления записи (BEFORE DELETE);
  • после удаления записи (AFTER DELETE);
  • до модификации записи (BEFORE UPDATE);
  • после модификации записи (AFTER UPDATE).

В Firebird 2.5 триггер может срабатывать при возникновении одного из нескольких событий. Триггеры могут вызывать выполнение хранимых процедур * PPT , выполнять различные проверки и генерировать исключения. Обычно триггеры используются для задания сложных правил контроля целостности базы данных, которые невозможно реализовать с помощью ограничений.

Недостатком триггеров является их влияние на производительность операций с базой данных.

Синтаксис оператора создания триггера:

CREATE TRIGGER Имя FOR Таблица

DECLARE [ VARIABLE ] Переменная ;

[ DECLARE [ VARIABLE ] Переменная ; . ]

Параметры, входящие в этот оператор, пояснены в табл. 1.

Таблица Параметры оператора создания триггера

Уникальное название триггера.

Название таблицы или просмотра, для которых создается триггер

Указывает будет ли работать триггер

Обязательный параметр, показывающий когда будет срабатывать триггер

Одно из событий, на которые будет срабатывать триггер

Определяет порядок срабатывания триггера, когда имеется несколько триггеров, реагирующих на одно и то же событие. Номер – целое число между 0 и 32767

DECLARE [ VARIABLE ] Переменная

Описание локальной переменной, которую можно будет использовать только в этом триггере

Любой одиночный оператор языка хранимых процедур и триггеров Firebird

Внутри тела триггера доступны две контекстные переменные NEW и OLD , которые позволяют получить доступ к новым и старым значениям полей записи, при изменении которой был вызван триггер.

Пример генератора и триггера для создания автоинкрементного поля:

CREATE GENERATOR EMP_NO_GEN;

CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE

ACTIVE BEFORE INSERT POSITION 0

IF (NEW. EMP_NO IS NULL) THEN

NEW. EMP_NO = GEN_ID( EMP_NO_GEN , 1) ;

  1. Исключения (Exceptions) и обработка ошибок

Исключение – это определенная пользователем ошибка, которая имеет имя и связанный с ним текст сообщения.

Для создания исключения служит оператор:

CREATE EXCEPTION Имя ‘Текст сообщения’;

Для возбуждения исключения в теле триггера или хранимой процедуры служит оператор:

При возникновении исключения нормальный ход выполнения прерывается и Firebird ищет ближайший обработчик этого исключения в текущем блоке BEGIN … END. Если обработчика исключения в этом блоке нет, то Firebird поднимается на уровень выше (к внешнему блоку BEGIN … END) и ищет обработчик там, и т.д. Если обработчик исключения найден, то выполняется его код и далее управление передается на первый оператор за обработчиком исключения. В случае если было сгенерировано исключение, которое никто не обрабатывает, это исключение передается в клиентское приложение. Чаще всего это приводит к выдаче пользователю сообщения о произошедшей ошибке.

Синтаксис оператора для обработки исключений внутри тела триггера или хранимой процедуры имеет следующий вид:

Параметры, входящие в этот оператор, описаны в табл. 2

Позволяет обработать все типы ошибок

Обработка исключения, сгенерированного пользователем (оператором EXCEPTION )

Обработка ошибки Firebird

  1. Операторы языка хранимых процедур и триггеров

В этом разделе приведены некоторые из используемых при написании триггеров и хранимых процедур операторов, которые не были описаны выше.

Для реализации сложных алгоритмов сервер Firebird поддерживает операторы ветвления.

Представляет собой оператор выборки данных и обработки их в цикле по записям.

  1. Порядок выполнения работы

Лабораторную работу следует выполнять в следующем порядке:

  1. Создать аналогично предыдущим лабораторным работам рабочую папку и назвать ее «ЛР5».
  2. Открыть окно «Редактор скриптов» в приложении «IBExpert».
  3. Используя кнопку [ Загрузить из файла ] на панели инструментов, открыть диалоговое окно «Open SQL File» и с его помощью открыть файл сценария, созданный при выполнении лабораторной работы №4.
  1. Используя кнопку [Save as] на панели инструментов, сохранить загруженный сценарий в папке «sqledu02:\D:\Data\ЛР5».
  2. Изменить в сценарии путь до файла с базой данных, чтобы база данных создавалась в папке «ЛР5».
  3. Добавить в сценарий операторы создания генераторов, исключений и триггеров.
  4. Создать для всех таблиц базы данных генераторы и триггеры для автоинкрементных полей (для первичных ключей).
  5. Создать триггеры, реализующие ссылочную целостность, изменив одно из ограничений внешнего ключа. Команды создания этого внешнего ключа из сценария не удалять, а добавить команду удаления этого ограничения перед созданием триггеров. Триггеры должны обеспечивать каскадное обновление и удаление зависимых данных, а также запрет ссылки на отсутствующую запись.
  6. Создать триггер, реализующий бизнес-правило в соответствии с выданным индивидуальным заданием. Для триггера должны присутствовать комментарии, поясняющие выполняемые операции.
  7. Выполнить сценарий и сохранить его в папке «ЛР5».
  8. Зарегистрировать созданную базу данных в программе «IBExpert» и подключиться к ней.
  9. Создать в своей базе данных таблицу в диалоговом режиме. Она должна называться «TestTriggers» и содержать десять полей разных типов с произвольными именами. При создании автоинкрементного поля первичного ключа сразу указать необходимость создания для него генератора и триггера. Добавить в диалоговом режиме к этой таблице три триггера выполняющих произвольные действия. Скопировать в отчет сценарий создания этой таблицы и триггеров, который сгенерирует «IBExpert».
  10. Создать в папке «ЛР5» резервную копию базы данных.
  11. Создать и сохранить в папке «ЛР5» файл с отчетом о выполнении лабораторной работы, который должен называться «Отчет5-xx.odt», где xx — это номер варианта задания. .
    1. Варианты заданий

Вариант задания (Таблица 3) выбирается по формуле (N mod 24)+1, где N – последние две цифры зачетной книжки студента.

Таблица : Варианты заданий к лабораторной работе №5

Источник

Adblock
detector