Russian Qt Forum
Ноябрь 23, 2024, 10:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qt + PostgreSQL. Транзакции  (Прочитано 5515 раз)
vorotislav
Гость
« : Июнь 23, 2014, 12:46 »

Доброго времени суток. Начал работать с БД PostgreSQL через транзакции. Все замечательно работает - и добавляет записи, и редактирует и удаляет. Но при закрытии программы вылезают в окошке "Вывод приложения" следующие записи:

РџР Р•Р”РЈРџР Р•Р–Р”Р•РќР˜Р•:  транзакция уже выполняется
РџР Р•Р”РЈРџР Р•Р–Р”Р•РќР˜Р•:  нет незавершённой транзакции

Перевел на русский через Notepad++:

ПРЕДУПРЕЖДЕНИЕ:  транзакция уже выполняется
ПРЕДУПРЕЖДЕНИЕ:  нет незавершённой транзакции

И не пойму в чем дело. Повесил на каждое открытие\закрытие qDebug() :

if (QSqlDatabase::database().transaction())
    qDebug() << "tr addSchemaPoint start";
...
if (QSqlDatabase::database().commit())
    qDebug() << "tr addSchemaPoint commit";

При выполнении приложения на каждый старт есть свой коммит, а сообщения все равно остаются. И даже не могу понять какая из транзакций выполняется. Не подскажете как быть? Может как то можно отловить эту выполняющуюся транзакцию. И второе сообщение немного не понятно. Если нет незавершенных транзакций - то зачем предупреждение делать?
Заранее благодарен!
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Июнь 23, 2014, 12:53 »

У postgresql нет вложенных транзакций.
Если вы сделали один раз begin(), то транзакция запустилась, повторный вызов begin() ничего не делает, кроме выдачи предупреждения.
Тоже и с commit: первый закрывает начатую транзакцию, второй выдает предупреждение, что активных транзакций нет.
Записан
vorotislav
Гость
« Ответ #2 : Июнь 23, 2014, 14:24 »

Old, спасибо большое! Наверняка проблема в этом, у меня есть такие ситуации! Сегодня уберу:)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.