crossplatform.ru

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

3 страниц V  < 1 2 3  
Ответить в данную темуНачать новую тему
> Вопросы по примеру staffmanager из книги Бланшет "Qt 4. Программирование GUI на C++"
Litkevich Yuriy
  опции профиля:
сообщение 31.5.2013, 19:33
Сообщение #21


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Steklova Olga @ 31.5.2013, 19:52) *
"The database reported an error: invalid transaction handle (expecting explicit transaction start) Unable to execute query", вторая запись не сохраняется.
Это всё к тому что я написал выше, тут вот ещё кое-что


в общем ни модели Qt ни соответственно Мапер (который пользуется моделью) не подразумевают использование транзакций.
Транзакции уверенно работают только при использовании QSqlQueryModel и всё. Как только начинают использоваться QSqlTableModel так всё сразу начинает глючить.

Причём проявляется это для разных драйверов СУБД. На сегодняшний день проявилось (в разных версиях Qt по разному) QIBase/QFirebird, QSqlite, QMysql, QOdbc
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 3.6.2013, 10:36
Сообщение #22


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

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




Репутация:   4  


Цитата(Litkevich Yuriy @ 31.5.2013, 19:33) *
Транзакции уверенно работают только при использовании QSqlQueryModel и всё. Как только начинают использоваться QSqlTableModel так всё сразу начинает глючить.

а ранее вы писали
Цитата(Litkevich Yuriy @ 21.3.2010, 0:52) *
Заменил QSqlTableModel, на простой QSqlQuery

Простите, так надо использовать QSqlQuery? Или QSqlQueryModel тоже можно?

А что вы думаете о предложении lvlad ?
Цитата(lvlad @ 18.6.2012, 14:35) *
чтобы исправить проблему необходимо в файле qsqltablemodel.cpp
в методе QSqlTableModelPrivate::exec закомментировать строку:
if (editQuery.driver() != db.driver())

После этого придется перекомпилировать Qt или модуль QtSql
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.6.2013, 18:49
Сообщение #23


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Steklova Olga @ 3.6.2013, 12:36) *
так надо использовать QSqlQuery? Или QSqlQueryModel тоже можно?
ошибся, QSqlQuery конечно


Цитата(Steklova Olga @ 3.6.2013, 12:36) *
А что вы думаете о предложении lvlad ?
надо пробовать, решение не очевидное.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 30.6.2022, 6:55