|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
arni> Рустам, подумай: в хранимку я не передаю никаких реальных данных, только ID изменяемой строки. arni> Сама хранимка уже выбирает данные из рабочих таблиц по этому ID. Она ничего не знает про new.* и old.*. Ну, так я и сказал выше. arni> Она может только прочитать ТЕКУЩЕЕ значение. А вот тут попутал :) Как-то не подумал об этом. Тогда да, в текущем раскладе все верно. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 17:13 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6.
stam2 почему то NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 17:41 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Дошло, я передавал имя таблицы маленькими буквами. теперь Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 17:44 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
X11 Вопрос в следующем. Может спустя столько лет появилась возможность узнать имя таблицы для которой срабатывает триггер? Может это будет в версии 2.х или 3.х? В 2.5 будет можно. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
Правда на данной стадии разработки на данном запросе Firebird-2.5.0.20542-0_Win32 валится ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 18:11 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам arniЕсли бы логирование происходило в триггере, то действительно подтавляя сначала old.* значения, а потом new.* значения можно сохранить состояние и до и после. Перенося же логику в XП мы теряем все зацепки new.* и old.*. Остается только сканировать текущее значение. Поэтому вызов идет из двух триггеров. Отмазка не принята. Ничто (ну, кроме вышеназванных проблем с цепочками триггеров) не мешает в одном триггере вызывать ХР два раза (один раз с OLD, другой раз с New). В принципе, можно даже в ХР добавить еще один параметр, чтобы передавать old и new одновременно, но это уже спорно - лучше / хуже. Posted via ActualForum NNTP Server 1.4 А какой-нибудь "buffer-compare old new to different-field-list" в триггре нельзя вызвать? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 18:25 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
afgmПравда на данной стадии разработки на данном запросе Firebird-2.5.0.20542-0_Win32 валитсяВ трекер внесёшь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 18:48 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
hvlad afgmПравда на данной стадии разработки на данном запросе Firebird-2.5.0.20542-0_Win32 валитсяВ трекер внесёшь ? В англицком не силён :( С другой стороны когда то начинать надо... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2008, 21:18 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Николай1> А какой-нибудь "buffer-compare old new to different-field-list" в триггре нельзя вызвать? Ответил был, если бы понял о чем ты. Но в ситуации arni (когда логирует отдельная процедура) - нельзя. 2 afgm - из-за автономной транзакции чтоль? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 18:26 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
to arni: вставлю 5 копеек можно и так! :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 18:41 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
mkrto arni: вставлю 5 копеек Оставляю от 5 копеек 2 Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 18:50 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
5 копеек, 2 копейки... Как будто что-то улучшилось... :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 19:11 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Меньше буков ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 19:34 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Николай1> А какой-нибудь "buffer-compare old new to different-field-list" в триггре нельзя вызвать? Ответил был, если бы понял о чем ты. Но в ситуации arni (когда логирует отдельная процедура) - нельзя. 2 afgm - из-за автономной транзакции чтоль? Posted via ActualForum NNTP Server 1.4 У меня есть "buffer-compare" - это оператор языка, который (оператор), после сравнения двух буферов, выдает список полей которые отличаются. Остается извлечь значения этих полей их каждого буфера и сложить куда надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 19:38 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Николай1> У меня есть "buffer-compare" - это оператор языка "У меня" - это в где? И оператор какого языка? Николай1> Остается извлечь значения этих полей их каждого буфера и сложить куда надо. Зачем? Сравнивать, извлекать... они итак уже "извлечены" в new и old. ;) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 21:55 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам 2 afgm - из-за автономной транзакции чтоль? Скорее всего, потому как без неё работает. Причём валится именно в момент коммита. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 22:53 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
afgm> Скорее всего, потому как без неё работает. Эт хорошо. :) А нафиг она там сдалась, кстати? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 22:56 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
- Больной перед смертью потел? - Потел, батюшка. - Это хорошо... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 23:17 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Хорошо, что сдох от не заразной болезни, ПВП. :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 23:27 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам afgm> Скорее всего, потому как без неё работает. Эт хорошо. :) А нафиг она там сдалась, кстати? doc\README.monitoring_tables.txt При первом обращении данные в мониторинговых таблицах "замораживаются". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.07.2008, 23:47 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
А, ты про снапшотность. Да, если процедура будет вызываться несколько раз. Логично. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 01:32 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
2 ДЕ Кстати, интересно, почему они снапшотны, а не RC-шны. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 02:01 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
WildSery mkrto arni: вставлю 5 копеек Оставляю от 5 копеек 2 Недождетесь! Наглядность и интуитивность кода на уровне "взглянул - понял" - тоже чего-то стоит, пусть и в ущерб кол-ву строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 06:39 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам 2 ДЕ Кстати, интересно, почему они снапшотны, а не RC-шны. Дима уже как-то отвечал на этот вопрос: "Чтобы данные в связанных мониторинговых таблицах были валидны между собой" (не дословно). Иначе обращение к ним в разное время даст неверные результаты по связям. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 07:16 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
кстати, последнее время я все больше склоняюсь к тому, чтобы имитировать уровень изоляции рабочей транзакции. Т.е. для read-committed делать "снапшотность" мониторинга на уровне клиентского запроса, а не транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 07:26 |
|
Узнать имя таблицы из триггера
|
|||
---|---|---|---|
#18+
dimitrкстати, последнее время я все больше склоняюсь к тому, чтобы имитировать уровень изоляции рабочей транзакции. Т.е. для read-committed делать "снапшотность" мониторинга на уровне клиентского запроса, а не транзакции. В целом логично. Хотя для приведённых выше изворотов кроме как автономкой не получится. Более того: захотел тут получать снимок таблицы использования памяти без старта новой транзакции, так пришлось вообще через новый EXECUTE STATEMENT делать, т.к. SUSPEND из автономного блока не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2008, 07:47 |
|
|
start [/forum/topic.php?fid=40&msg=35421725&tid=1561295]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
120ms |
get tp. blocked users: |
1ms |
others: | 321ms |
total: | 522ms |
0 / 0 |