Свежесгенерированное значение генератора в триггере
Модератор: kdv
Свежесгенерированное значение генератора в триггере
Коллеги, я конечно понимаю, что надежд не много, но всеж сохраняю их.
Триггер Before Insert вставляет в поле первичного ключа значение. Мне это значение надо знать без (до) переоткрытия таблицы. Сама запись идентифицируется только значением поля "автогенерируемого" первичного ключа. После переоткрытия наверно нет способов определить какой ID был у той записи (вариант визуального детектирования не катит).
Что приходит в голову первым делом: Перестать генерировать ID через триггер, а получать его в программе через Procedure, впихнуть его в поле, после переоткрытия я буду знать о как найти ту самую запись. Собственно вопрос, можно на момент генерации этого значения в триггере, в программу передать его?
Триггер Before Insert вставляет в поле первичного ключа значение. Мне это значение надо знать без (до) переоткрытия таблицы. Сама запись идентифицируется только значением поля "автогенерируемого" первичного ключа. После переоткрытия наверно нет способов определить какой ID был у той записи (вариант визуального детектирования не катит).
Что приходит в голову первым делом: Перестать генерировать ID через триггер, а получать его в программе через Procedure, впихнуть его в поле, после переоткрытия я буду знать о как найти ту самую запись. Собственно вопрос, можно на момент генерации этого значения в триггере, в программу передать его?
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Свежесгенерированное значение генератора в триггере
RTFM INSERT...RETURNING.
Re: Свежесгенерированное значение генератора в триггере
Спасибо, меня дезинформировало то, что в MySql можно было без returning получать значения автогенератора поля... Щас попробую:)
***
В IBExpert вернулось, а как бы вернуть в TIBDataset?
***
В IBExpert вернулось, а как бы вернуть в TIBDataset?
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: Свежесгенерированное значение генератора в триггере
Никак. IBX не поддерживает фичи Firebird, включая RETURNING.
Re: Свежесгенерированное значение генератора в триггере
да я это уже понял... наверно надо будет FIBPlus. Но приложение уже построено на IBX.Dimitry Sibiryakov писал(а):Никак. IBX не поддерживает фичи Firebird, включая RETURNING.
Можно ли стыковать компоненты FIB и IBX? скажем TpFIBDataSet с TIBDatabase и TIBTransaction?
Re: Свежесгенерированное значение генератора в триггере
может, все-таки прочитать www.ibase.ru/devinfo/generator.htm ?
не вижу смысла убиваться из-за returning.
не вижу смысла убиваться из-за returning.
Re: Свежесгенерированное значение генератора в триггере
В общем, ранее читал этот материал, да и сейчас вновь прошелся по нему. В принципе, ничего радикально нового о генераторах (для моего, в частности, случая) не узнал. В общем пришел к мысли, что оптимально будет - вынести генерацию в приложение. Returning был бы изящным решением, если бы компонент поддерживал его...kdv писал(а):может, все-таки прочитать http://www.ibase.ru/devinfo/generator.htm ?
не вижу смысла убиваться из-за returning.