powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как узнать что транзакция уже запущена...?
5 сообщений из 5, страница 1 из 1
Как узнать что транзакция уже запущена...?
    #35047312
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, может кто подскажет.... Есть классы, которые запускаются друг из друга и каждый должен стартовать транзакцию либо делать SavePoint, последовательность вызова классов не определенная, поэтому надо узнать запущена транзакция или нет, т.к. повторный вызов BEGIN выдает предупреждение, а самое главное непонятно сколько COMMITов делать когда классы заканчивают работу....

В MSSql это можно делать как @@TRANSCOUNT?

Из функций для работы с транакциями я нашел txid_current(), которая возвращает идентификатор транзакции, но когда она запущена не понятно (идентификатор есть если транзакция и не запущена)...
Можно выяснить что транзакция запущено только коссвенно... если два раза подряд вызвать txid_current(), то идентификатор транзакции не изменится и функция вернет одно и тоже значение :)) прикольно в общем... А если транзакция не была запущена, то каждый вызов SELECT txid_current() выдает новый ид транзакции.... Может кто решал эту задачу?
Версия PG 8.3b4
...
Рейтинг: 0 / 0
Как узнать что транзакция уже запущена...?
    #35047364
Quiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeniorAndreпоэтому надо узнать запущена транзакция или нет, т.к. повторный вызов BEGIN выдает предупреждение, а самое главное непонятно сколько COMMITов делать когда классы заканчивают работу....


В PG нет вложенных транзакций. Одного commit хватит.
...
Рейтинг: 0 / 0
Как узнать что транзакция уже запущена...?
    #35047418
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у Вас все так красиво с классами, то реализуйте класс, отвечающий за базу. Пусть в нем будут методы старта транзакции, коммита и роллбэка. И вопросы отпадут сами собой.
...
Рейтинг: 0 / 0
Как узнать что транзакция уже запущена...?
    #35047588
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) У меня как раз и был класс отвечающий за работу с БД, но он про транзакции спрашивал у БД :)). Наверное действительно просто буду подсчитывать транзакции внутри класса..., спасибо... совсем шоры на глазах...., я просто БД перевожу с MSSql а постргрю...
...
Рейтинг: 0 / 0
Как узнать что транзакция уже запущена...?
    #35048144
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeniorAndreНаверное действительно просто буду подсчитывать транзакции внутри класса...,Как Вам уже написали, подсчитывать будет нечего. В PG нет вложенных транзакций. Она либо стартована, либо завершена и надо стартовать новую.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как узнать что транзакция уже запущена...?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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