|
системные TC
|
|||
---|---|---|---|
#18+
Здравствуйте. есть необходимость использования системных ТС. Тут у меня похоже небольшой пробел ) на вьюхе в триггерах пишутся данные во временную таблицу последний триггер вызывает процедуру, которая проверяет есть ли в таблице записи. И если есть - вызывает исключение. Вот только после этого если временную прочитать в этой же транзакции, то там ничего нет. Подозреваю, что исключение отменило все вставки. http://www.ibase.ru/savepoints/ читал есть ли возможность в данном случае прочитать что находится во временной? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2016, 23:51 |
|
системные TC
|
|||
---|---|---|---|
#18+
SwvВот только после этого если временную прочитать в этой же транзакции, то там ничего нет. Подозреваю, что исключение отменило все вставки.Таки и шо вас, собсно, не устраивает? Необработанное в WHEN исключение откатывает транзакцию и, соответственно, отменяет всё, что транзакция сделала "полезного". Если не устраивает такое поведение, пинайте автономные транзакции и временные таблицы с ON COMMIT PRESERVE ROWS. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 02:52 |
|
системные TC
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 26 октября 2016 г. 10:59:49: Rdb Dev> Необработанное в WHEN исключение откатывает транзакцию и, соответственно, отменяет всё, что транзакция сделала "полезного".купи себе букварь. прежде чем других "учить". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 11:00 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devисключение откатывает транзакцию Тут тебе не PG или MS какой... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 11:27 |
|
системные TC
|
|||
---|---|---|---|
#18+
Мимопроходящийкупи себе букварь. прежде чем других "учить".Может тебе самому последовать своему совету, чтобы, наконец, прочесть то, что написано на стр.273 документа "Firebird Language Reference" ? "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское исключение не было обработано в триггере или в хранимой процедуре, то все выполненные действия отменяются , вызвавшая программа получает текст, заданный при создании исключения или альтернативный текст сообщения." ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:25 |
|
системные TC
|
|||
---|---|---|---|
#18+
сейчас ещё и Денис получит пропистон за процитированную ХРЕНЬ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:28 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devто, что написано В каком месте написанного ты увидел слово "транзакция", чудик? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:28 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_dev, только там говорится о действиях, а не о транзакции. Транзакция вообще-то вовсе не обязательно состоит из одного запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:31 |
|
системные TC
|
|||
---|---|---|---|
#18+
Это не Библия, состоит не из постулатов. Отрывок забавный! "Все выполненные действия" - чем выполненные? Процедурой/триггером, в котором случилось исключение? Всеми в рамках текущей транзакции или сэйвпоинта? Офисной уборщицей за всю предыдущую неделю? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:32 |
|
системные TC
|
|||
---|---|---|---|
#18+
Симонов Денис, ну выразился не совсем корректно... Что уж прям так придираться? Транзакция не завершается, но все её действия откатываются, так же, как при rollback. Я прав? Разница лишь в том, что можно еще раз попытаться выполнить какие-либо действия в том же контексте транзакции. Но разве это вернет записи во временную таблицу, которые были вставлены в транзакции до EXCEPTION? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:36 |
|
системные TC
|
|||
---|---|---|---|
#18+
Hello, Rdb Dev! You wrote on 26 октября 2016 г. 13:41:30: Rdb Dev> Я прав?нет. и хуже всего то, что весьма пафосный. Модератор: censored ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:42 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_dev, нет не прав. Клиент решает, что делать откатить транзакцию или откатится на последний сейвпойнт и продолжить действия в транзакции. WildSery, это не совсем корректный перевод Release Notes или LRU. Надо бы посмотреть что там в оригинале написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:45 |
|
системные TC
|
|||
---|---|---|---|
#18+
Утро вечера мудреней ) Не получится так. ибо по документации получается,что откатывается либо все до начала транзакции. Либо в блоке begin when end. ON COMMIT PRESERVE ROWS судя по описанию тоже будет отменена в случае ошибки ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:48 |
|
системные TC
|
|||
---|---|---|---|
#18+
Swv, ещё один. Ладно я подумаю как это предложение переписать так чтобы у кого-то мозги не затуманивались. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:49 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devМимопроходящийкупи себе букварь. прежде чем других "учить".Может тебе самому последовать своему совету, чтобы, наконец, прочесть то, что написано на стр.273 документа "Firebird Language Reference" ? "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское исключение не было обработано в триггере или в хранимой процедуре, то все выполненные действия отменяются , вызвавшая программа получает текст, заданный при создании исключения или альтернативный текст сообщения." Здесь речь о действиях выполненных внутри хранимой процедуры или триггера. Поэтому правильно читать как-то так "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское исключение не было обработано в триггере или в хранимой процедуре, то все действия, выполненные внутри этой хранимой процедуры (триггера) отменяются, а вызвавшая программа получает текст, заданный при создании исключения или альтернативный текст сообщения." Если есть варианты получше предлагайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:02 |
|
системные TC
|
|||
---|---|---|---|
#18+
Денис, слово "ВСЕ", с учётом сейвпоинтов (явных и неявных) тут наверное излишне. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:08 |
|
системные TC
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_devпропущено... Может тебе самому последовать своему совету, чтобы, наконец, прочесть то, что написано на стр.273 документа "Firebird Language Reference" ? "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское исключение не было обработано в триггере или в хранимой процедуре, то все выполненные действия отменяются , вызвавшая программа получает текст, заданный при создании исключения или альтернативный текст сообщения." Здесь речь о действиях выполненных внутри хранимой процедуры или триггера. Поэтому правильно читать как-то так "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское исключение не было обработано в триггере или в хранимой процедуре, то все действия, выполненные внутри этой хранимой процедуры (триггера) отменяются, а вызвавшая программа получает текст, заданный при создании исключения или альтернативный текст сообщения." Если есть варианты получше предлагайте. тут речь идет (если дословно) о абстрактной ХП. есть необходимость добавить в таблицу (временную) допустим в третьем BI триггере. И возбудить исключение 11 BI триггере. уведомить об этом приложение и чтобы добавленные данные в третьем BI остались во временной ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:16 |
|
системные TC
|
|||
---|---|---|---|
#18+
Симонов Денис "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское исключение не было обработано в триггере или в хранимой процедуре, то все действия, выполненные внутри этой хранимой процедуры (триггера) отменяются, а вызвавшая программа получает текст, заданный при создании исключения или альтернативный текст сообщения." Забавно получается... Если исключение возбуждено в триггере, то откатятся изменения, сделанные в триггере и, если триггер был вызван по действиям, произведенным в хранимой процедуре, то исключение должно быть поднято до этой ХП. Если ХП также не обработает это исключение в WHEN...DO, то также должны быть отменены все изменения, сделанные в этой ХП? А если так, то должны быть отменены и все изменения, сделанные посредством выполнения последнего полученного пользовательского запроса в контексте данной транзакции? Иными словами, будут отменены все изменения последнего выданного в транзакции запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:28 |
|
системные TC
|
|||
---|---|---|---|
#18+
Swvесть необходимость добавить в таблицу (временную) допустим в третьем BI триггере. И возбудить исключение 11 BI триггере. уведомить об этом приложение и чтобы добавленные данные в третьем BI остались во временнойПопробуйте вставлять данные во временную таблицу ON COMMIT PRESERVE ROWS с помощью конструкции: IN AUTONOMOUS TRANSACTION DO INSERT INTO temp_tbl VALUES(....) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:41 |
|
системные TC
|
|||
---|---|---|---|
#18+
Симонов Денис, про "до последнего фетча" не забудьте, однако. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:42 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devSwvесть необходимость добавить в таблицу (временную) допустим в третьем BI триггере. И возбудить исключение 11 BI триггере. уведомить об этом приложение и чтобы добавленные данные в третьем BI остались во временнойПопробуйте вставлять данные во временную таблицу ON COMMIT PRESERVE ROWS с помощью конструкции: IN AUTONOMOUS TRANSACTION DO INSERT INTO temp_tbl VALUES(....) тогда не увижу в temp_tbl в последнем триггере записи. только если временная ON COMMIT PRESERVE ROWS и записи с тегом транзакции. получается записи будут висеть во временной до завершения коннекта. Сильно это будет напрягать сервер? или же в рамках коннекта временная работает так же как и обычная? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:00 |
|
системные TC
|
|||
---|---|---|---|
#18+
pastor, почему именно "до последнего фетча"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:48 |
|
системные TC
|
|||
---|---|---|---|
#18+
Swvтогда не увижу в temp_tbl в последнем триггере записи. только если временная ON COMMIT PRESERVE ROWS и записи с тегом транзакции.Разве есть иной выбор? Swvполучается записи будут висеть во временной до завершения коннекта.Ну, поставьте на них гриф "С.С., после прочтения сжечь!" и пусть фетч из этой таблицы их подчистит обычным DELETE FROM. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:53 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devРазве есть иной выбор? Выбор есть всегда. Наиболее очевидный в данном случае: перестать бредить и начать изучать предмет. Причём как для тебя, так и для ТСа. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:57 |
|
системные TC
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, твоё замечание было бы ценнее, приведи ты вариант решения задачи ТСа. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:13 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devтвоё замечание было бы ценнее, приведи ты вариант решения задачи ТСа. Чтобы привести вариант решения задачи ТСа нужно знать задачу ТСа, а вывести её из мутного потока мыслей в стартовом посте - у меня телепатер слаб. Даже не получается угадать что именно он называет "системными ТС". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:19 |
|
системные TC
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovДаже не получается угадать что именно он называет "системными ТС". ну слава богу я уж думал я один тут такой тормоз ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:24 |
|
системные TC
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЧтобы привести вариант решения задачи ТСа нужно знать задачу ТСа, а вывести её из мутного потока мыслей в стартовом посте - у меня телепатер слаб. Даже не получается угадать что именно он называет "системными ТС".Это у него такое "intro" с действительно бессознательным потоком мыслей, имеющих к постановке задачи лишь косвенное отношение. Ключевая фраза, относящаяся, видимо, к постановке задачи: Swvна вьюхе в триггерах пишутся данные во временную таблицу последний триггер вызывает процедуру, которая проверяет есть ли в таблице записи. И если есть - вызывает исключение. Вот только после этого если временную прочитать в этой же транзакции, то там ничего нет. Подозреваю, что исключение отменило все вставки. ... есть ли возможность в данном случае прочитать что находится во временной? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:39 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_devКлючевая фраза, относящаяся, видимо, к постановке задачи По-любому это бред, пусть даже и намекающий, что он пытается сделать какую-то пакетную обработку записей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:55 |
|
системные TC
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovчто именно он называет "системными ТС" Технические Средства? Точки Состанова? я тоже в недоумении. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 17:02 |
|
системные TC
|
|||
---|---|---|---|
#18+
умер от стыда ))) об умерших - или ничего или все равно ничего ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 17:38 |
|
системные TC
|
|||
---|---|---|---|
#18+
kdv, "телесигнализация", "терминальное соединение", "транспарентное состояние", "таблицы состояния", "транзакция соединения". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 17:53 |
|
системные TC
|
|||
---|---|---|---|
#18+
rdb_dev, до кучи - "терминальное состояние". Я с простудой примерно в таком состоянии сейчас и нахожусь... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 17:58 |
|
системные TC
|
|||
---|---|---|---|
#18+
Дмитрий, кто-то лечится водкой, но мой верный способ - перед сном горячий чай с малиновым вареньем, термобелье и под теплое одеяло. С утра, по всей видимости, придется принять душ, а бельё в стирку. Выздоравливай! -те ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 18:05 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561892]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 180ms |
0 / 0 |