Nosta вопрос к тебе, сделал триггер который реагирует на удаление (добавление) скриншотов
SET TERM ^ ;
CREATE OR ALTER TRIGGER IMAGES_USER_MARK_SCREENSHOTS FOR IMAGES
ACTIVE AFTER INSERT OR DELETE POSITION 0
AS
DECLARE VARIABLE CMF_ID INTEGER;
DECLARE VARIABLE VALUE_TEXT VARCHAR(127);
BEGIN
CMF_ID = '1';
VALUE_TEXT = 'Нет Скриншота';
IF (DELETING) THEN
IF (NOT (EXISTS( SELECT 1 FROM CUSTOM_VALUES_SHORTSTR WHERE "cmfid"=:CMF_ID AND "mid"=OLD."mid" AND "value"=:VALUE_TEXT))) THEN
IF (NOT (EXISTS( SELECT 1 FROM IMAGES WHERE "mid"=OLD."mid"))) THEN
INSERT INTO CUSTOM_VALUES_SHORTSTR ("cmfid", "mid", "value")
VALUES (:CMF_ID, OLD."mid", :VALUE_TEXT);
IF (INSERTING) THEN
DELETE FROM
CUSTOM_VALUES_SHORTSTR
WHERE
("cmfid" = :CMF_ID) AND ("value" = :VALUE_TEXT) AND ("mid" = NEW."mid");
END
^
SET TERM ; ^
работает на 100%, но есть одно НО, он коректно работает если все манипуляции проводить через менеджер базы (IB Expert или любой другой), если добавляем скрин в PVD, удаление значения "Нет Скриншотов" не происходит, и наоборот при удалении скрина это значение не добавляется, но если мы добавляем и удаляем через IB Expert то все проходит на ура, триггер срабатывает. Посмотри у себя, может где-то не до конца завершаются транзакции или не происходит commit.