powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / системные TC
35 сообщений из 35, показаны все 2 страниц
системные TC
    #39333995
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

есть необходимость использования системных ТС. Тут у меня похоже небольшой пробел )

на вьюхе в триггерах пишутся данные во временную таблицу
последний триггер вызывает процедуру, которая проверяет есть ли в таблице записи.
И если есть - вызывает исключение.
Вот только после этого если временную прочитать в этой же транзакции, то там ничего нет.
Подозреваю, что исключение отменило все вставки.

http://www.ibase.ru/savepoints/ читал

есть ли возможность в данном случае прочитать что находится во временной?

Спасибо
...
Рейтинг: 0 / 0
системные TC
    #39334018
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SwvВот только после этого если временную прочитать в этой же транзакции, то там ничего нет.
Подозреваю, что исключение отменило все вставки.Таки и шо вас, собсно, не устраивает? Необработанное в WHEN исключение откатывает транзакцию и, соответственно, отменяет всё, что транзакция сделала "полезного". Если не устраивает такое поведение, пинайте автономные транзакции и временные таблицы с ON COMMIT PRESERVE ROWS.
...
Рейтинг: 0 / 0
системные TC
    #39334187
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 26 октября 2016 г. 10:59:49:

Rdb Dev> Необработанное в WHEN исключение откатывает транзакцию и, соответственно, отменяет всё, что транзакция сделала "полезного".купи себе букварь.
прежде чем других "учить".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334223
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devисключение откатывает транзакцию
Тут тебе не PG или MS какой...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334351
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийкупи себе букварь.
прежде чем других "учить".Может тебе самому последовать своему совету, чтобы, наконец, прочесть то, что написано на стр.273 документа "Firebird Language Reference" ?

"Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское
исключение не было обработано в триггере или в хранимой процедуре, то все
выполненные действия отменяются
, вызвавшая программа получает текст, заданный
при создании исключения или альтернативный текст сообщения."
...
Рейтинг: 0 / 0
системные TC
    #39334354
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас ещё и Денис получит пропистон за процитированную ХРЕНЬ

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334356
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devто, что написано
В каком месте написанного ты увидел слово "транзакция", чудик?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334358
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

только там говорится о действиях, а не о транзакции. Транзакция вообще-то вовсе не обязательно состоит из одного запроса.
...
Рейтинг: 0 / 0
системные TC
    #39334360
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не Библия, состоит не из постулатов.
Отрывок забавный! "Все выполненные действия" - чем выполненные? Процедурой/триггером, в котором случилось исключение? Всеми в рамках текущей транзакции или сэйвпоинта? Офисной уборщицей за всю предыдущую неделю?
...
Рейтинг: 0 / 0
системные TC
    #39334364
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, ну выразился не совсем корректно... Что уж прям так придираться? Транзакция не завершается, но все её действия откатываются, так же, как при rollback. Я прав? Разница лишь в том, что можно еще раз попытаться выполнить какие-либо действия в том же контексте транзакции. Но разве это вернет записи во временную таблицу, которые были вставлены в транзакции до EXCEPTION?
...
Рейтинг: 0 / 0
системные TC
    #39334370
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Rdb Dev!
You wrote on 26 октября 2016 г. 13:41:30:

Rdb Dev> Я прав?нет.
и хуже всего то, что весьма пафосный.

Модератор: censored
...
Рейтинг: 0 / 0
системные TC
    #39334375
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

нет не прав. Клиент решает, что делать откатить транзакцию или откатится на последний сейвпойнт и продолжить действия в транзакции.

WildSery,

это не совсем корректный перевод Release Notes или LRU. Надо бы посмотреть что там в оригинале написано.
...
Рейтинг: 0 / 0
системные TC
    #39334379
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Утро вечера мудреней )

Не получится так. ибо по документации получается,что откатывается либо все до начала транзакции. Либо в блоке begin when end.

ON COMMIT PRESERVE ROWS судя по описанию тоже будет отменена в случае ошибки
...
Рейтинг: 0 / 0
системные TC
    #39334381
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swv,

ещё один. Ладно я подумаю как это предложение переписать так чтобы у кого-то мозги не затуманивались.
...
Рейтинг: 0 / 0
системные TC
    #39334396
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devМимопроходящийкупи себе букварь.
прежде чем других "учить".Может тебе самому последовать своему совету, чтобы, наконец, прочесть то, что написано на стр.273 документа "Firebird Language Reference" ?

"Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское
исключение не было обработано в триггере или в хранимой процедуре, то все
выполненные действия отменяются
, вызвавшая программа получает текст, заданный
при создании исключения или альтернативный текст сообщения."

Здесь речь о действиях выполненных внутри хранимой процедуры или триггера.

Поэтому правильно читать как-то так

"Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское
исключение не было обработано в триггере или в хранимой процедуре, то все действия,
выполненные внутри этой хранимой процедуры (триггера) отменяются, а вызвавшая программа
получает текст, заданный при создании исключения или альтернативный текст сообщения."


Если есть варианты получше предлагайте.
...
Рейтинг: 0 / 0
системные TC
    #39334401
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис, слово "ВСЕ", с учётом сейвпоинтов (явных и неявных) тут наверное излишне.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334404
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_devпропущено...
Может тебе самому последовать своему совету, чтобы, наконец, прочесть то, что написано на стр.273 документа "Firebird Language Reference" ?

"Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское
исключение не было обработано в триггере или в хранимой процедуре, то все
выполненные действия отменяются
, вызвавшая программа получает текст, заданный
при создании исключения или альтернативный текст сообщения."

Здесь речь о действиях выполненных внутри хранимой процедуры или триггера.

Поэтому правильно читать как-то так

"Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское
исключение не было обработано в триггере или в хранимой процедуре, то все действия,
выполненные внутри этой хранимой процедуры (триггера) отменяются, а вызвавшая программа
получает текст, заданный при создании исключения или альтернативный текст сообщения."


Если есть варианты получше предлагайте.

тут речь идет (если дословно) о абстрактной ХП.

есть необходимость добавить в таблицу (временную) допустим в третьем BI триггере. И возбудить исключение 11 BI триггере. уведомить об этом приложение и чтобы добавленные данные в третьем BI остались во временной
...
Рейтинг: 0 / 0
системные TC
    #39334419
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис "Исключение может быть обработано в операторе WHEN ... DO. Если пользовательское
исключение не было обработано в триггере или в хранимой процедуре, то все действия,
выполненные внутри этой хранимой процедуры (триггера) отменяются, а вызвавшая программа
получает текст, заданный при создании исключения или альтернативный текст сообщения."
Забавно получается...
Если исключение возбуждено в триггере, то откатятся изменения, сделанные в триггере и, если триггер был вызван по действиям, произведенным в хранимой процедуре, то исключение должно быть поднято до этой ХП. Если ХП также не обработает это исключение в WHEN...DO, то также должны быть отменены все изменения, сделанные в этой ХП? А если так, то должны быть отменены и все изменения, сделанные посредством выполнения последнего полученного пользовательского запроса в контексте данной транзакции?
Иными словами, будут отменены все изменения последнего выданного в транзакции запроса?
...
Рейтинг: 0 / 0
системные TC
    #39334431
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swvесть необходимость добавить в таблицу (временную) допустим в третьем BI триггере. И возбудить исключение 11 BI триггере. уведомить об этом приложение и чтобы добавленные данные в третьем BI остались во временнойПопробуйте вставлять данные во временную таблицу ON COMMIT PRESERVE ROWS с помощью конструкции:
IN AUTONOMOUS TRANSACTION DO INSERT INTO temp_tbl VALUES(....)
...
Рейтинг: 0 / 0
системные TC
    #39334432
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

про "до последнего фетча" не забудьте, однако.
...
Рейтинг: 0 / 0
системные TC
    #39334463
Swv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 и записи с тегом транзакции. получается записи будут висеть во временной до завершения коннекта.
Сильно это будет напрягать сервер? или же в рамках коннекта временная работает так же как и обычная?
...
Рейтинг: 0 / 0
системные TC
    #39334546
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastor, почему именно "до последнего фетча"?
...
Рейтинг: 0 / 0
системные TC
    #39334553
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swvтогда не увижу в temp_tbl в последнем триггере записи. только если временная ON COMMIT PRESERVE ROWS и записи с тегом транзакции.Разве есть иной выбор?

Swvполучается записи будут висеть во временной до завершения коннекта.Ну, поставьте на них гриф "С.С., после прочтения сжечь!" и пусть фетч из этой таблицы их подчистит обычным DELETE FROM.
...
Рейтинг: 0 / 0
системные TC
    #39334559
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devРазве есть иной выбор?
Выбор есть всегда. Наиболее очевидный в данном случае: перестать бредить и начать изучать
предмет. Причём как для тебя, так и для ТСа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334581
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, твоё замечание было бы ценнее, приведи ты вариант решения задачи ТСа.
...
Рейтинг: 0 / 0
системные TC
    #39334586
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devтвоё замечание было бы ценнее, приведи ты вариант решения задачи ТСа.

Чтобы привести вариант решения задачи ТСа нужно знать задачу ТСа, а вывести её из мутного
потока мыслей в стартовом посте - у меня телепатер слаб. Даже не получается угадать что
именно он называет "системными ТС".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334594
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДаже не получается угадать что
именно он называет "системными ТС".

ну слава богу

я уж думал я один тут такой тормоз
...
Рейтинг: 0 / 0
системные TC
    #39334620
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЧтобы привести вариант решения задачи ТСа нужно знать задачу ТСа, а вывести её из мутного
потока мыслей в стартовом посте - у меня телепатер слаб. Даже не получается угадать что
именно он называет "системными ТС".Это у него такое "intro" с действительно бессознательным потоком мыслей, имеющих к постановке задачи лишь косвенное отношение.
Ключевая фраза, относящаяся, видимо, к постановке задачи: Swvна вьюхе в триггерах пишутся данные во временную таблицу
последний триггер вызывает процедуру, которая проверяет есть ли в таблице записи.
И если есть - вызывает исключение.
Вот только после этого если временную прочитать в этой же транзакции, то там ничего нет.
Подозреваю, что исключение отменило все вставки.
... есть ли возможность в данном случае прочитать что находится во временной?
...
Рейтинг: 0 / 0
системные TC
    #39334638
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devКлючевая фраза, относящаяся, видимо, к постановке задачи
По-любому это бред, пусть даже и намекающий, что он пытается сделать какую-то пакетную
обработку записей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
системные TC
    #39334649
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovчто именно он называет "системными ТС"
Технические Средства? Точки Состанова? я тоже в недоумении.
...
Рейтинг: 0 / 0
системные TC
    #39334685
DelphiZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
умер от стыда ))) об умерших - или ничего или все равно ничего
...
Рейтинг: 0 / 0
системные TC
    #39334692
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, "телесигнализация", "терминальное соединение", "транспарентное состояние", "таблицы состояния", "транзакция соединения".
...
Рейтинг: 0 / 0
системные TC
    #39334699
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

до кучи - "терминальное состояние". Я с простудой примерно в таком состоянии сейчас и нахожусь...
...
Рейтинг: 0 / 0
системные TC
    #39334704
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий, кто-то лечится водкой, но мой верный способ - перед сном горячий чай с малиновым вареньем, термобелье и под теплое одеяло. С утра, по всей видимости, придется принять душ, а бельё в стирку.
Выздоравливай! -те
...
Рейтинг: 0 / 0
системные TC
    #39334739
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

спасибо. впрочем, еврейских мамаш у меня рядом две, и обе они мужского пола :-)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / системные TC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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