Вопросы по примеру staffmanager из книги Бланшет "Qt 4. Программирование GUI на C++" |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы по примеру staffmanager из книги Бланшет "Qt 4. Программирование GUI на C++" |
Litkevich Yuriy |
31.5.2013, 19:33
Сообщение
#21
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
"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 |
Транзакции уверенно работают только при использовании QSqlQueryModel и всё. Как только начинают использоваться QSqlTableModel так всё сразу начинает глючить. а ранее вы писали Заменил QSqlTableModel, на простой QSqlQuery Простите, так надо использовать QSqlQuery? Или QSqlQueryModel тоже можно? А что вы думаете о предложении lvlad ? чтобы исправить проблему необходимо в файле qsqltablemodel.cpp
в методе QSqlTableModelPrivate::exec закомментировать строку:
После этого придется перекомпилировать Qt или модуль QtSql |
|
|
Litkevich Yuriy |
3.6.2013, 18:49
Сообщение
#23
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 26.12.2024, 17:49 |