Вылетает с ошибкой "...corrupted double-linked list", просьба о помощи |
Здравствуйте, гость ( Вход | Регистрация )
Вылетает с ошибкой "...corrupted double-linked list", просьба о помощи |
Гость_Demonsh_* |
16.7.2008, 9:39
Сообщение
#1
|
Гости |
Прошу помощи у многоуважаемого ALL. Написал достаточно простенький софт на С++ с библиотекой QT. Код проблемного участка:
в данном случае я вызываю форму formAddHost для добавления/редактирования записи и хочу что бы после ее закрытия обновилась таблица (tableViewHosts) в родительской форме. Проблема в том что если выполняется функция RefreshTables то в родительской таблице появляется много пустых строк после всех записей и при попытке сделать скрол вниз программа вылетает с ошибкой: Цитата *** glibc detected *** /****/****/Project: corrupted double-linked list: 0x08141278 *** может tableView нужно как-то очищать при повторной загрузке?
Причина редактирования: для кода используем тэг code=cpp
|
|
|
Litkevich Yuriy |
16.7.2008, 13:21
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
версия Qt какая? откуда заполняется представление?
|
|
|
Гость_Demonsh_* |
16.7.2008, 15:56
Сообщение
#3
|
Гости |
libqt4-4.4.0-17.1
libqt4-sql-mysql-4.4.0-18.1 заполняется из MySQL базы. При запуске программы: Цитата db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName(db_serverName); db.setDatabaseName(db_database); db.setUserName(db_username); db.setPassword(db_password); db.open() // queryHosts = new QSqlTableModel; queryHosts->setTable("view_hosts"); queryHosts->select(); ui.tableViewHosts->setModel(queryHosts); |
|
|
Litkevich Yuriy |
16.7.2008, 16:49
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Гость_Demonsh_* |
16.7.2008, 17:23
Сообщение
#5
|
Гости |
вот я и вызываю select() - 2й строчкой в функции RefreshTables(). Таблица обновляется и видны сделанные изменения. Проблема с появлением кучи пустых строк в конце таблицы и вылете программы при попытке скрола.
|
|
|
Litkevich Yuriy |
16.7.2008, 17:35
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
попробуй после селекта все закоментировать, и зачем ты метод show() вызываешь?
|
|
|
Гость_Demonsh_* |
16.7.2008, 18:31
Сообщение
#7
|
Гости |
все убрал в ф-ции RefreshTables() кроме:
queryHosts->setTable("view_hosts"); queryHosts->select(); ситуация не изменилась . Может механизм обновления таблицы надо использовать другой. Попробовал скомпилировать под виндовс. Тот-же глюк, добавило ровно столько пустых строк в конец, сколько уже было записей. Правда под виндой программа не вываливается. Создается впечатление что нужно как-то очистить ui.tableViewHosts перед обновлением данных. |
|
|
Гость_Demonsh_* |
16.7.2008, 18:56
Сообщение
#8
|
Гости |
Опытным путем установил что проблема в строке:
Цитата queryHosts->setTable("view_hosts"); по другому переформировал код ( так что-бы setTable() вызывалась только один раз в программе - вроде так же оно и надо?) и проблема ушла. Официальная дока кстати рекомендует для обновления использовать именно ф-ю select(); |
|
|
Текстовая версия | Сейчас: 19.1.2025, 7:18 |