QTableView + QSqlRelationalTableModel + MySQL, некорректно работает добавление элемента |
Здравствуйте, гость ( Вход | Регистрация )
QTableView + QSqlRelationalTableModel + MySQL, некорректно работает добавление элемента |
varvasar |
28.7.2008, 13:37
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 28.7.2008 Пользователь №: 244 Спасибо сказали: 0 раз(а) Репутация: 0 |
Проблема странная, поэтому описывать буду подробно.
При добавлении новой записи в базу (через модель естественно) dModel->insertRow(row); cIndex = dModel->index(row, s_c); dTableView->setCurrentIndex(cIndex); dTableView->edit(cIndex); Происходит следующее: Если таблица достаточно простая, с одним внешним ключем (setRelation), то все проходит на ура. Если же для таблицы установлено несколько внешних ключей, то при завершении редактирования новой записи имеет место сбой: новая запись отображается корректно, а запись, находившаяся ранее в строке row - с ошибками - в полях с внешними ключами неверные данные. Если после добавления записи выполнить dModel->select() все становится ок, тоесть проблема только в отображении данных, в БД ошибки не идут. Это раз. Кроме всего прочего, после добавления записи, в конце таблицы почему-то появляются линшие пустые строки, числом равные количеству заполненных строк в этой таблице. Причем выделить их нельзя, а после закрытия dTableView и открытия его снова лишние строки пропадают, т.е проблема снова в отображении. Это два Есть еще три - подскажите, как заставить QTableView после добавления новой записи скролиться на нее. Выделение записи я сделал с помощью QItemSelection, но скролинга на выделение не происходит, а при больших рабмерах таблиц это сильно не удобно. Заранее благодарен за помощь Qt v4.3.4 |
|
|
Litkevich Yuriy |
28.7.2008, 13:48
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
описаный баг похож на тот который у меня был. я работаю через ODBC с Firebird'ом, все исправилось после обновления драйвера Firebird ODBC и больше никогда непроявлялось (хотя логики ни какой, как и у тебя в БД все писалось путем).
А ты какой драйвер Qxxx используешь и для какой БД? |
|
|
varvasar |
5.8.2008, 12:47
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 28.7.2008 Пользователь №: 244 Спасибо сказали: 0 раз(а) Репутация: 0 |
Перекомпилил проект в релизе - лишние строки пропали, но остальные баги остались.
БД MySQL 5.0.51b |
|
|
Текстовая версия | Сейчас: 20.4.2024, 13:34 |