Страница 1 из 1

Свежесгенерированное значение генератора в триггере

Добавлено: 20 апр 2011, 01:15
sdsfy
Коллеги, я конечно понимаю, что надежд не много, но всеж сохраняю их.
Триггер Before Insert вставляет в поле первичного ключа значение. Мне это значение надо знать без (до) переоткрытия таблицы. Сама запись идентифицируется только значением поля "автогенерируемого" первичного ключа. После переоткрытия наверно нет способов определить какой ID был у той записи (вариант визуального детектирования не катит).
Что приходит в голову первым делом: Перестать генерировать ID через триггер, а получать его в программе через Procedure, впихнуть его в поле, после переоткрытия я буду знать о как найти ту самую запись. Собственно вопрос, можно на момент генерации этого значения в триггере, в программу передать его?

Re: Свежесгенерированное значение генератора в триггере

Добавлено: 20 апр 2011, 14:27
Dimitry Sibiryakov
RTFM INSERT...RETURNING.

Re: Свежесгенерированное значение генератора в триггере

Добавлено: 20 апр 2011, 16:08
sdsfy
Спасибо, меня дезинформировало то, что в MySql можно было без returning получать значения автогенератора поля... Щас попробую:)

***
В IBExpert вернулось, а как бы вернуть в TIBDataset?

Re: Свежесгенерированное значение генератора в триггере

Добавлено: 21 апр 2011, 14:39
Dimitry Sibiryakov
Никак. IBX не поддерживает фичи Firebird, включая RETURNING.

Re: Свежесгенерированное значение генератора в триггере

Добавлено: 21 апр 2011, 15:05
sdsfy
Dimitry Sibiryakov писал(а):Никак. IBX не поддерживает фичи Firebird, включая RETURNING.
да я это уже понял... наверно надо будет FIBPlus. Но приложение уже построено на IBX.
Можно ли стыковать компоненты FIB и IBX? скажем TpFIBDataSet с TIBDatabase и TIBTransaction?

Re: Свежесгенерированное значение генератора в триггере

Добавлено: 22 апр 2011, 18:25
kdv
может, все-таки прочитать www.ibase.ru/devinfo/generator.htm ?
не вижу смысла убиваться из-за returning.

Re: Свежесгенерированное значение генератора в триггере

Добавлено: 22 апр 2011, 21:02
sdsfy
kdv писал(а):может, все-таки прочитать http://www.ibase.ru/devinfo/generator.htm ?
не вижу смысла убиваться из-за returning.
В общем, ранее читал этот материал, да и сейчас вновь прошелся по нему. В принципе, ничего радикально нового о генераторах (для моего, в частности, случая) не узнал. В общем пришел к мысли, что оптимально будет - вынести генерацию в приложение. Returning был бы изящным решением, если бы компонент поддерживал его...