crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Транзакции, не работают :(
potkin
  опции профиля:
сообщение 30.8.2010, 11:53
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 77
Регистрация: 18.6.2010
Пользователь №: 1819

Спасибо сказали: 0 раз(а)




Репутация:   0  


Почему-то не работают транзакции.
Пример кода:
if(db.open())
{
db.transaction();
QSqlQuery query(db);

query.exec("INSERT INTO table01 ...");
query.exec("INSERT INTO table02 ...");
...

model01->submitAll();
model02->submitAll();
...

db.rollback(); //!!!!!!!!!!!!!!!!!!!
db.close();
}


Делаю "db.rollback();", но все изменения сохраняются в БД
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 30.8.2010, 11:58
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


а submitAll сохраняет, тогда роллбэк вхолостую отрабатывает :) Хотя, обычно это называется commit, но тут, наверное, это одно и то же
Цитата
bool QSqlTableModel::submitAll () [slot]
Submits all pending changes and returns true on success. Returns false on error, detailed error information can be obtained with lastError().

On success the model will be repopulated. Any views presenting it will lose their selections.

Note: In OnManualSubmit mode, already submitted changes won't be cleared from the cache when submitAll() fails. This allows transactions to be rolled back and resubmitted again without losing data.

See also revertAll() and lastError().


Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- potkin   Транзакции   30.8.2010, 11:53
- - DEADHUNT   Цитата(potkin @ 30.8.2010, 12:53) Делаю ...   30.8.2010, 11:57
- - Алексей1153   а submitAll сохраняет, тогда роллбэк вхолостую отр...   30.8.2010, 11:58
- - Litkevich Yuriy   с моделью вообще всё не так себе. Даже при ручном ...   30.8.2010, 12:04
- - potkin   а СУБД поддерживает транзакции? MySQL 5.1 Вроде, ...   30.8.2010, 12:38
- - molchanoviv   Точно не помню в каком классе(а ассистента под рук...   30.8.2010, 12:49
- - Litkevich Yuriy   Цитата(potkin @ 30.8.2010, 16:38) MySQL 5...   30.8.2010, 13:10
- - potkin   Litkevich Yuriy да в принципе ничего. Не созрела ...   30.8.2010, 13:47
- - Litkevich Yuriy   Цитата(potkin @ 30.8.2010, 17:47) Во папа...   30.8.2010, 16:23
- - potkin   Litkevich Yuriy Получается мне надо съежать с QSql...   30.8.2010, 16:37
- - Litkevich Yuriy   я поступил по другому: логика работы программы доп...   30.8.2010, 16:41
- - potkin   Litkevich Yuriy, Это как получается. Если на форм...   30.8.2010, 18:04
- - Алексей1153   potkin, я работаю с MySQL 5+ из студии через ихний...   30.8.2010, 18:46
|- - potkin   Цитата(Алексей1153 @ 30.8.2010, 18:46) po...   30.8.2010, 21:32
- - Litkevich Yuriy   Цитата(potkin @ 30.8.2010, 22:04) Правиль...   30.8.2010, 22:18
- - Алексей1153   potkin, а что значит "сохранить модель" ...   31.8.2010, 6:38
- - Litkevich Yuriy   Цитата(Алексей1153 @ 31.8.2010, 10:38) а ...   31.8.2010, 7:31
- - Алексей1153   вот не люблю эту автоматизацию. Надо так: делаешь ...   31.8.2010, 8:16


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.1.2025, 1:17