powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Trigger->Stored Proc->Trigger. Не работает.
3 сообщений из 3, страница 1 из 1
Trigger->Stored Proc->Trigger. Не работает.
    #32192121
koff4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется таблица договоров. В before update триггере производится дополнительный пересчет полей:

....
IF ((NEW.PAYSUMM <> OLD.PAYSUMM) OR (NEW.PNGRPERCENT <> OLD.PNGRPERCENT)) then
begin
NEW.PAYNGRSUMM = (NEW.PAYSUMM * (NEW.PNGRPERCENT / 100));
NEW.PAYMEDSUMM = (NEW.PAYSUMM - NEW.PAYNGRSUMM);
end

Имеется таблица платежей в триггерах которой вызывается StroredProc для изменения оплаченной суммы в договоре. Например для Insert
.......
execute procedure UPDATE_CLIPAY NEW.CLIDOGID, 0.00, NEW.PAYSUMM ;

В StoredProc прописано изменение общей суммы платежа:
UPDATE CLIDOGS SET CLIDOGS.PAYSUMM = :CURSUMM + :NEWSUMM - :OLDSUMM
WHERE CLIDOGS.CLIDOGID = :CLIDOGID;


Так вот, когда мы вносим (изменяем, удаляем) новый платеж, поле PAYSUMM в CLIDOGS изменяется, но дополнительные поля не пересчитываются. То есть триггер на Update не срабатывает, хотя сам Update вроде бы имеет место.
В чем дело, подскажите!!! Стоит FireBird 1.5 RC3
...
Рейтинг: 0 / 0
Trigger->Stored Proc->Trigger. Не работает.
    #32192228
Igor Elyas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда модифицируется триггер что бы он заработал нужен дисконнект/коннект что бы он заработал и так после каждой перекомпиляции. Метаданные триггеров загружаются именно при коннекте и остаются неизменные до следующего коннекта.
...
Рейтинг: 0 / 0
Trigger->Stored Proc->Trigger. Не работает.
    #32194689
koff4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Триггеры и ХП точно работают.
Если изменяем поле Paysumm в Clidogs - срабатывает Update Trigger и разносит сумму по полям.
Если вносим запись в CliPay - срабатывает трииггер и ХП, которая изменяет поле PaySumm в CliDogs. Но при этом не срабатывает Update Trigger, который разносит эту сумму по полям.
То есть при прямой модификации таблицы триггер срабатывает, а при такой же модификации из ХП - не срабатывает.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Trigger->Stored Proc->Trigger. Не работает.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]