Сайт Koder.kz сайт для Delphi программистов.

koder.kz

Web or desctop App Developer

Написать

Добавил admin | Категория Заметки про IBExpert, Firebird | 14 Декабря 2013


Доброго времени суток Уважаемые, напоминаю вам что мы продолжаем знакомиться с IBExpert + firebird, птицу используем 2.5, можно и 2.1 и даже 2.0 большой разницы на малых проектах вы врятли ощутите. И так таблицы, жмем правой кнопкой мыши – новая таблица.


Откроется макет создания новой таблицы, введем имя нашей таблицы


Определимся с ее полями, пусть у нас будет поля ID, FIO, adres, photes, dfirs.

ID – первичный ключ таблицы
FIO, adres, phones – строковые поля
Dfirst – поле типа дата/время, скажем что это дата начала, пусть дата первой операции или дата регистрации чего то где то, не важно на данном этапе.

Все эти поля будут созданы на основе трех доменов:

Домен для первичного ключа - DMN_PK. 


CREATE DOMAIN DMN_PK AS
BIGINT
NOT NULL;
Домен для строки DMN_STR.
CREATE DOMAIN DMN_STR AS
VARCHAR(255) CHARACTER SET UNICODE_FSS
COLLATE UNICODE_FSS;

Домен для даты с текущей датой по умолчанию DMN_DATE.


CREATE DOMAIN DMN_DATE AS
DATE
DEFAULT 'now'
NOT NULL;

Выполнить приведенные выше скрипты создания доменов можно нажатием кнопки F12 откроется последний закрытый SQL редактор, или нажать сочетание клавиш Shift+F12 и откроется новый SQL редактор в котором нужно выполнить скрипты и подтвердить commit (Ctrl+Alt+C). После того как нужные нам домены будут созданы можно перейти к созданию полей таблицы. Для этого нам необходимо


Ввести название поля ( на картинке номер 1), выбрать домен для этого поля (номер 2), добавить поле(номер три), после для каждого поля следует повторить указанные выше операции. Как только ввод необходимых полей будет завершен необходимо нажать Ctrl+F9 и сделать commit новым изменениям. 

Первичный ключ таблицы 

Для того что бы необходимое нам поле стало первичным ключем для нашей таблицы нам необходимо сделать двойной клик девой кнопкой мыши по ячейки в столбце ПК.


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


Вводим такой вот текст скрипта


AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_TBL_MAIN,1);
END

GEN_TBL_MAIN название нашего генератора. Давайте разберем что же происходит. В переменной NEW находится введенная нами новая запись для таблицы. Поле ID этой переменной проверяется и если оно ровно NULL (если мы туда ничего не ввели) то вызывается функция GEN_ID которая генерирует значение увеличенное на 1 для генератора GEN_TBL_MAIN. И присваивает результат переменной NEW.ID. давайте скопируем скрипт и выполним его, выполнять необходимо в том окне в котором мы создаем сам триггер. 

Скрипт генератора GEN_TBL_MAIN.


CREATE SEQUENCE GEN_TBL_MAIN;
ALTER SEQUENCE GEN_TBL_MAIN RESTART WITH 0;

Так же стоит проверить появилось ли у нас ограничение на наш первичный ключ, для этого откроем вкладку как на картинке.


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


жмем Ctrl+Alt+C, запись добавилась, транзакция завершилась, таблица работает. О создании представлений и работы с ними мы поговорим с вами в нашей следующей статье.