crossplatform.ru

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

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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 31.5.2025, 16:42