1 / 1 / 0
Регистрация: 28.02.2012
Сообщений: 18
1

Проблемы с триггером

23.04.2013, 09:23. Показов 989. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть триггер, который генерирует id для новой записи в таблице. Когда я пытаюсь добавить запись в таблицу с помощью dbnavigator, не вводы id для новой записи вручную, выдается сообщение об ошибке "id надо присвоить значение"
Что собственно сделать что бы записи добавлялись нормально?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2013, 09:23
Ответы с готовыми решениями:

Сложность с триггером
Добрый день, помогите реализовать следующее. Есть две таблицы. Нужно реализовать следующее: Чтобы...

Помгите с триггером
Всем привет, в общем есть таблица ID, Товар, Цена, Количество, нужно по клику на кнопке изменить...

Проблема с триггером
Я читал что триггер -это что то вроде пистолет производящий выстрел. Я с этим соласен. Но я...

Проблема с триггером
Может у кого будет время мне ответить, please. Есть таблица bb_basket, содержащая данные о...

6
1408 / 571 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
23.04.2013, 14:20 2
так приведи код тригера, а заодно скажи с какой БД работаешь
0
1 / 1 / 0
Регистрация: 28.02.2012
Сообщений: 18
23.04.2013, 22:24  [ТС] 3
Цитата Сообщение от _Dimon_ Посмотреть сообщение
так приведи код тригера, а заодно скажи с какой БД работаешь
работаю с Firebird
SQL
1
2
3
4
5
6
7
CREATE OR ALTER TRIGGER reader_id FOR reader
active BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.RD_ID IS NULL) THEN
    NEW.RD_ID = GEN_ID(GEN_READER_ID,1);
END
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
23.04.2013, 22:33 4
Mmaaxx, поясните, пожалуйста, для тех кто в танке: какая практическая польза от такого рода тригера по сравнению с использованием обычного уникального автоинкремента?
2
1 / 1 / 0
Регистрация: 28.02.2012
Сообщений: 18
23.04.2013, 23:41  [ТС] 5
Ну в танке тут не Вы, а я) Загуглил, спасибо за наводку.
Со своей проблемой тоже разобрался http://www.ibase.ru/devinfo/generator.htm
Пункт про триггеры, второе примечание
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
24.04.2013, 00:24 6
Mmaaxx, ой, а можно узнать конкретное решение???

Цитата Сообщение от Mmaaxx Посмотреть сообщение
Ну в танке тут не Вы, а я)
Я все-таки настаиваю: в танке именно я Ибо с FB/IB я уже давно работал, а там (IB Expert) ведь при указании типа поля "Auto increment" автоматически создается и тригер, и генератор. Ну это уже другой вопрос на самом деле

По поводу изначальной проблемы наткнулся на следующее:
Оказывается, что Interbase триггер "before insert" срабатывает только после того, как запись "запостится" из Delphi приложения. В связи с чем становится невозможным увеличение автоинкрементальных ключевых полей. Есть решение?

Большинство программистов решило эту проблему созданием хранимой процедуры (stored procedure), позволяющей от InterBase получить следующий номер и поместить его в вашу запись посредством метода onBeforePost или onNewRecord.
Что, скорее всего, справедливо и для связки "C++ Builder && FB".
0
1408 / 571 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
24.04.2013, 03:01 7
есть еще триггеры INSTEAD OF
1
24.04.2013, 03:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2013, 03:01
Помогаю со студенческими работами здесь

Непонятка с триггером
Столкнулся с непонятной разницей в поведении между HEF4013 и CD4013. Вторая не работает в...

Проблема с триггером
Триггер для таблицы flights FLIGHT_ID NUMBER DEPARTUREDATE DATE ARRIVALDATE DATE ...

Ошибка с триггером и функцией
Здравствуйте. Сделал код триггера с функцией, но при добавлении выдает ошибку "Записи new не...

Проблема с третим триггером
Что с триггером «Products_Sales»? Почему в результатах выводится "Товар «iPhone X» фирмы «Apple...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru