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

Как отобразить данные из триггера в новой записи

Добавлено: 15 июн 2011, 19:25
KVas
Здравствуйте! Ситуация следующая: есть before insert триггер, который перед вставкой новой записи в таблицу заполняет несколько полей значениями по-умолчанию. Все нормально работает, только в приложении на момент запонения новой записи данные сформированные триггером не видны, т.е. в когда я при помощи компонента DBGridEh добавляю новую запись - то что заполнил триггер не видно. Можно ли это как-то устроить. Да, для доступа к данным используется FIBPlus 6.9

Re: Как отобразить данные из триггера в новой записи

Добавлено: 16 июн 2011, 10:15
kdv
вопрос скучный до ужаса, и аналогичен ситуации с генераторами, рассмотренной в статье
www.ibase.ru/devinfo/generator.htm.

То есть, если надо увидеть измененные на сервере столбцы - значит нужно запись ПЕРЕЧИТАТЬ.
Или, в последних версиях Firebird можно использовать insert returning (в FIBPlus).

Re: Как отобразить данные из триггера в новой записи

Добавлено: 16 июн 2011, 13:16
KVas
kdv писал(а):вопрос скучный до ужаса, и аналогичен ситуации с генераторами, рассмотренной в статье
http://www.ibase.ru/devinfo/generator.htm.
Вопрос может и скучен, но совсем не аналогичен ситуации с генератором, которая в FIBDataSet элементарно решается путем заполнения AutoUpdateOptions.
kdv писал(а):То есть, если надо увидеть измененные на сервере столбцы - значит нужно запись ПЕРЕЧИТАТЬ.
Или, в последних версиях Firebird можно использовать insert returning (в FIBPlus).
За insert returning спасибо, хоть понял, где рыть.
Нарыл следующее: при использовании сетки данных DBGridEh на момент добавления новой записи оператор insert еще не выполняется, следовательно и триггер before insert не срабатывает, а значит и значения еще не сгенерированы. Т.е. нет никакой возможности показать эти значения в сетке. Следовательно в триггере уместно заполнять поля значениями только в случае, когда их необязательно видеть до физического выполнения insert. Если же есть необходимость именно в момент добавления записи в сетку видеть значения полей по умолчанию - нужно их заполнять в клиенте по событию OnNewRecord.

Re: Как отобразить данные из триггера в новой записи

Добавлено: 23 июн 2011, 19:35
SDG
Тебе же подсказали, что нужно ПЕРЕЧИТАТЬ данные.
Для этого у фибов есть RefreshSQL (можно генерировать через SQL generator)