Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Bepec от Июнь 12, 2014, 12:00



Название: Qt Sql Множественные транзакции.
Отправлено: Bepec от Июнь 12, 2014, 12:00
Приветствую заглянувших.

Вопрос - как используя Qt и QSqlDatabase одновременно выполнять несколько транзакций?

В документации написано что то вроде "одно соединение поддерживает одну транзакцию", но до меня не доходит как это оформить в коде.

Вполне возможно они имеют в виду что нужно создавать 1 объект QSqlDatabase на каждую транзакцию.

Прошу помощи :)


Название: Re: Qt Sql Множественные транзакции.
Отправлено: Hellraiser от Июнь 12, 2014, 12:12
Вот объект создавать-то и не стоит. Есть статический метод addDatabase, который добавит соединение. Запоминать возвращаемое значение не надо, а если требуется доступ в другом месте, то обращаться через database. Главное, надо не забывать давать имя для соединения. Т.е. примерно так:
Код
C++ (Qt)
QSqlDatabase::addDatabase("QMYSQL", "FirstConnection");
QSqlDatabase::addDatabase("QMYSQL", "SecondConnection");
...
QSqlDatabase db1 = QSqlDatabase::database("FirstConnection");
QSqlDatabase db2 = QSqlDatabase::database("SecondConnection");
if (db1.transaction())
{
...
db1.commit();
}
if (db2.transaction())
{
...
db2.commit();
}
 


Название: Re: Qt Sql Множественные транзакции.
Отправлено: Bepec от Июнь 12, 2014, 12:17
Т.е. надо создавать столько объектов QSqlDatabase, сколько требуется транзакций.
Ну и под копирку все инициализировать и прочая.