Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.04.2006, 13:30
|
|||
|---|---|---|---|
|
|||
разъясните механизм транзакций |
|||
|
#18+
Вопрос. У меня есть ХП. Вот она. Код: 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. На сколько я понял все ХП в PostgreSQL выполняються в транзакции. И не нужно писать BEGIN...COMMIT...ROLLBACK. Но как завершаеться транзакция если я выхожу из ХП по return? И еще если мне нужно выйти из ХП с отменой действий выполненных в транзакции что я должен писать? При добавлении строк COMMIT или ROLLBACK во время выполнении ХП выдаеться следующее сообщение: ERROR: SPI_prepare() failed on "ROLLBACK" Будьте добры, разъясните человеку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.04.2006, 14:07
|
|||
|---|---|---|---|
|
|||
разъясните механизм транзакций |
|||
|
#18+
И вопрос следом... Есть возможность как то передать сообщение клиентскому приложению не через return <String>? Знаю что raise notice <String> выдает сообщение на терминал где запущен PostgreSQL. Но это я думаю не единственный способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.04.2006, 16:16
|
|||
|---|---|---|---|
|
|||
разъясните механизм транзакций |
|||
|
#18+
автореще если мне нужно выйти из ХП с отменой действий выполненных в транзакции что я должен писать? raise error .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
01.04.2006, 16:20
|
|||
|---|---|---|---|
разъясните механизм транзакций |
|||
|
#18+
KisianНо как завершаеться транзакция если я выхожу из ХП по return? И еще если мне нужно выйти из ХП с отменой действий выполненных в транзакции что я должен писать? Выход по RETURN подтверждает транзакцию, в которой выполняется хранимая процедура. Для отката транзакции подними исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.04.2006, 16:20
|
|||
|---|---|---|---|
|
|||
разъясните механизм транзакций |
|||
|
#18+
Funny_Falcon автореще если мне нужно выйти из ХП с отменой действий выполненных в транзакции что я должен писать? raise error .... проверял у меня выдается сообщение об ошибке при выполнении ХП, ругаеться на слово Error. Вот так: Код: plaintext Может нужно выполнить какие то установки при старте самого сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.04.2006, 18:29
|
|||
|---|---|---|---|
разъясните механизм транзакций |
|||
|
#18+
RAISE EXCEPTION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.04.2006, 19:03
|
|||
|---|---|---|---|
|
|||
разъясните механизм транзакций |
|||
|
#18+
.GuestRAISE EXCEPTION Да так работает. Большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.04.2006, 10:14
|
|||
|---|---|---|---|
|
|||
разъясните механизм транзакций |
|||
|
#18+
sorry. А вообще я думал, что ты в документацию посмотришь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.04.2006, 14:15
|
|||
|---|---|---|---|
разъясните механизм транзакций |
|||
|
#18+
Скажу сразу - работаю с Oracle, но с интересом посматриваю на PostgreSQL. .Guest KisianНо как завершаеться транзакция если я выхожу из ХП по return? И еще если мне нужно выйти из ХП с отменой действий выполненных в транзакции что я должен писать? Выход по RETURN подтверждает транзакцию, в которой выполняется хранимая процедура. Для отката транзакции подними исключение. Из этой фразы не понятно, что нужно сделать, если ХП не завершающий элемент в транзакции. Т.е. если я начал что-то делать, потом надо вызвать ХП, потом продолжить и в конце подтвердить или откатить. В Оракле понятно - Коммит или Роллбэк в любом месте завершит транзакцию, причем ХП отработает без завершения ее. А как здесь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.04.2006, 14:31
|
|||
|---|---|---|---|
разъясните механизм транзакций |
|||
|
#18+
pamir В Оракле понятно - Коммит или Роллбэк в любом месте завершит транзакцию, причем ХП отработает без завершения ее. А как здесь?если нет сейвпойнтов и т.п, то откатывается вся транзакция целиком. Если транзакция вызвана стейтментом (т.е. не в батче с явным объяблением), то весь стейтмент либо пройдет , либо (по пути в любом месте возникла необработанная ошибка) откатится. Если внутри такого стейтмента вызывались (каскадно или еще как) хранимки - то их ошибки или ошибка еще чего откатит всю транзакцию в т.ч. работу всех вызванных хранимок (за исключением нетранзакционных вещей - ака наваривание/изменение счетчиков). Если вызов прошел из батча, то до вызова его, батчевого коммита/роллбека транзакция не будет завершена (в функциях попросту низзя написать ни коммит, ни роллбек-а). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=2006485]: |
0ms |
get settings: |
5ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 378ms |

| 0 / 0 |
