![]() |
|
|
![]()
|
|
| loneybibi |
|
||||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Добрый день всем!
Есть модель QSqlTableModel. На кнопку повесил такой код:
При релизной сборке все нормально, но при сборке в дебаг режиме приложеие вылетает с ошибкой:
При этом в консоли вывод такой:
При нажатии на ошибку открывается пустой qvarlengtharray.h. Есть у кого какие предположения почему это происходит? И опять же такой эффект происходит при сборке только на Windows системах, на остальных все отлично. Спасибо за ответы! Это сообщение отредактировал(а) loneybibi - 22.1.2012, 10:56 -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||||
|
|||||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Судя по
ошибка здесь Возможно, таблица ещё пустая и делать selectRow() со значением, большим, чем кол-во записей нельзя. Попробуй (ради эксперимента) разнести эти строки (model->select() и table->selectRow()) на разные кнопки. И (в любом случае) нужно проверять, что в таблице есть данные. Как-то так
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| loneybibi |
|
|||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Вот когда таблица пустая то этого не происходит даже если не проверять QSqlTableModel::rowCount. Вылет происходит именно при QSqlTableModel::select(); и именно в дебаг режиме. Разносил по разным кнопкам. В таблице ничего особенного. несколько полей текстового типа и несколько числового. Qt собрано на mingw, а почему ошибка происходит при обращении в Visual C++ Runtime Library, и вообще причем он тут? Может чего не хватает для Qt ведь я не ставил никаких дополнительных компонентов, только чистый Windows XP SP2 и сам QtSDK. -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
|||
|
||||
| loneybibi |
|
|||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Поставил чистую систему Windows XP SP3 оригинал, установил последний QtSDK, собрал драйвер QMYSQL, собрал проект все тоже самое. Проверил на Win7SP1 тоже ошибка. Опять же в release сборке все нормально.
Потом создал чистый проект, подключился к той же таблице, сделал все по тому же принципу как и у меня все работает без проблем. Значит буду искать проблемы у себя в коде. Что то там не так. Если у кого еще есть предположения в какой стороне копать буду благодарен! Еще интересно почему в release он игнорирует эту ошибку а в debug вылетает ? -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
|||
|
||||
| loneybibi |
|
||||
|
Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
Пролистав все построчно через отладку нашел проблему.
Обращался к таблице QSqlTableModel:
Таких строчек одинаковых было много но вылетало именно на предпоследней (строки одинаковые, менялось только название колонки) почему так и не понял, мистика какая то. Так вот хоть qDebug() и выводил что записей в таблице 4шт. происходил вылет (с выводом в консоль выше описанным) как только я пытался взять значение ячейки. Решение было просто как и порекомендовал borisbn в любом случаем проверять есть ли данные в таблице! Добавил проверку:
И все стало работать нормально! Вывод: проверять наличие данных в таблице даже если вы уверенны что там что то есть! Но остался вопрос: почему release вариант сборки игнорировал это (и все работало отлично) а появлялось такое только при debug??? Это сообщение отредактировал(а) loneybibi - 23.1.2012, 03:22 -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
||||
|
|||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |