|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть клиент, написанный на delphi другим человеком. Доступа у меня к исправлению исходников нет. Хочу в триггере after update делать post_event, а после него exception, чтобы не было апдейта. Все эксепшены программы-клиента пишутся в лог, а эвенты выводятся в диалоговых окошках. Изменить это я не могу - не моя кухня. Мне надо не просто вывести в лог exception из триггера,а послать post_event вне зависимости будет транзакция завершена через commit или rollback. post_event работает только после того, как сделан commit. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2019, 22:21 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2019, 22:55 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2019, 22:56 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
autonomous тогда уж, а лучше не выпендриваться с гуглем, а сразу посылать в LangRef. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 00:22 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, да! Прорушка на старушку! В третий раз не стал править! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 00:35 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 02:03 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Тут есть ещё одна проблемка - firebird 2.1.3 и переход на 2.5 в ближайшее время не планируется. про автономные транзакции в 2.5 в курсе. Попробую через udf чтоли ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 09:52 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
08.10.2019 9:52, evgen29 пишет: > Попробую через udf чтоли под этот велосипед соломку подкладывать бесполезно... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 11:25 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Уж лучше апдетебл вью замутить на месте искомой таблички, которой требуется обломать апдейт, зло куда меньшее. Пусть клиент думает, что проапдейтил, все закоммитит, а запись чутка хитрее подрулить триггерами. Только все едино костыли. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 12:59 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
В TRIGGER BEFORE INSERT: Rdb$Set_Context('USER_SESSION', 'Event', 'some event'); В TRIGGER TRANSACTION COMMIT/TRANSACTION ROLLBACK проверять Rdb$Get_Context('USER_SESSION', 'Event') и делать PostEvent ? *Не проверено. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 15:10 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Василий 2, fb 2.1 же ж. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 15:57 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Василий 2В TRIGGER TRANSACTION COMMIT/TRANSACTION ROLLBACK проверять транзакционные триггеры крайне не рекомендуется использовать для любых целей, кроме отладки. Потому что в результате будут тормоза на любой старт-коммит-роллбэк транзакции. В триггере на роллбэк опять же пост-евент работать не будет, потому что эвенты отсылаются только при коммите. Вот тут - про 2.5, про автономные транзакции, и триггеры на транзакции. https:// youtu.be/n35L7gdw51Q?t=1736 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 16:05 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
kdvтранзакционные триггеры крайне не рекомендуется использовать для любых целей, кроме отладки. Потому что в результате будут тормоза на любой старт-коммит-роллбэк транзакции. В триггере на роллбэк опять же пост-евент работать не будет, потому что эвенты отсылаются только при коммите. Вот тут - про 2.5, про автономные транзакции, и триггеры на транзакции. https:// youtu.be/n35L7gdw51Q?t=1736 По описанию ТС у него в любом случае костыльный костыль. А вообще действительно подменить вьюху может сработать, если только прога не подтягивает метаданные таблицы (ключи или индексы, например). А цель просто отменить апдейт? TRIGGER AFTER UPDATE, где (псевдокод) NEW.* := OLD.* не поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 18:04 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
08.10.2019 18:04, Василий 2 пишет: > TRIGGER AFTER UPDATE, где (псевдокод) NEW.* := OLD.* не поможет? запрещено. ибо. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 18:06 |
|
post_event вне зависимости от транзакции
|
|||
---|---|---|---|
#18+
Василий 2, в коде приложений, триггерах или процедурах, .* = 5 ударов розгами (или линейкой) по пальцам, независимо от места указания. В интерактивных запросах, "прямщас" - можно, не возбраняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2019, 20:03 |
|
|
start [/forum/topic.php?fid=40&msg=39873070&tid=1560549]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 242ms |
0 / 0 |