Здравствуйте, гость ( Вход | Регистрация )
Хаски | Дата 19.10.2012, 11:43 |
Я наследовал свой класс QSqlRelationalTableModelExtraFetch от QSqlRelationalTableModel и переопределили в нем метод select() следующим образом:
|
|
Litkevich Yuriy | Дата 19.10.2012, 0:30 |
Хаски, нужно сделать наследника от модели и в её методах вызывать fetchMore() | |
RazrFalcon | Дата 18.10.2012, 19:04 |
Я вручную SQL запросы отсылал. Так проще и быстрее, чем через Qt. |
|
Хаски | Дата 18.10.2012, 18:26 |
Здравствуйте! Я создаю модель, связанную с таблицей в БД на SQlite и вывожу ее в tableView:
Класс QSqlRelationalTableModel реализован так, что имеет место так называемая "ленивая загрузка" данных. При работе с таблицей подгружается по 255 записей, остальные - по мере прокрутки ползунка. Мне это не нужно, мне нужно, чтобы загружались сразу все данные (память позволяет, объем базы не слишком велик, а вызванные этим неудобства интерфейса мешают). Во всех методах своего приложения я использую код "while(model->canFetchMore()) model->fetchMore();", и все работает так, как надо - в tableView загружается все содержимое таблицы из БД. Однако, мне также необходима возможность редактирования ячеек в tableView с синхронизацией с БД (стратегия редактирования - OnFieldChange). При этом, когда пользователь редактирует ячейку из ряда с номером больше 255, после завершения ее редактирования таблица перезагружается из БД, и вновь лишь первые 255 строк. В результате tableview перескакивает к 255 строке, что очень неудобно. Например, если мне нужно быстро отредактировать несколько строк в таблице под номерами 500, 501, 502, у каждой по несколько полей, это не получится сделать быстро и удобно из-за постоянного перескакивания на 255 строку. Вопрос: как мне изменить поведение tableview, чтобы после заверешения редактирования ячейки в таблице загружалась вся таблица? Или как изменить этот параметр, дающий ограничение в 255 строк? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.4.2024, 1:49 |