Russian Qt Forum
Октябрь 18, 2018, 22:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: ComboBox и mapper проблема с индексом более 255  (Прочитано 614 раз)
AlexMad
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« : Апрель 16, 2018, 19:44 »

Собственно, есть БД SQLITE.

создаю маппинг:
Код:
  tableModel_tblMain = new QSqlRelationalTableModel(this);
  tableModel_tblMain->setTable("tblMain");
  tableModel_tblMain->setRelation(tblMain_clientid, QSqlRelation("tblClients", "id", "name"));
  tableModel_tblMain->setRelation(tblMain_operatorid, QSqlRelation("tblOperators", "id", "name"));
...

// создаю реляцию
  relationModelClientID = tableModel_tblMain->relationModel(tblMain_clientid);
  relationModelClientID->setSort(tblClients_name, Qt::AscendingOrder);
  relationModelClientID->select();

...
// так как клиентов много, делаю перебор: (иначе отображает только 255 штук)
  relationModelClientID->select();
  while(relationModelClientID->canFetchMore())
    relationModelClientID->fetchMore();

...

// создаю маппинг
  mapper = new QDataWidgetMapper(this);
  mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
  mapper->setModel(tableModel_tblMain);
  mapper->setItemDelegate(new QSqlRelationalDelegate(this));
  mapper->addMapping(ui.CB_ClientSelect, tblMain_clientid);
...

// после редактированния делаю субмит
mapper->submit();
А теперь самое интересное: если в комбобоксе выбран индекс до 255 включительно, строка в таблицу отлично добавляется. Если индекс 256 и выше, то mapper->submit(); возвращает false.
Записан
dio
Чайник
*
Offline Offline

Сообщений: 53


Просмотр профиля
« Ответ #1 : Апрель 17, 2018, 12:52 »

Может Вам реализовать этот функционал не с помощью ComboBox. Ведь пользователю приложения не доставит удобства работы с таким большим списком.
Записан
AlexMad
Новичок

Offline Offline

Сообщений: 2


Просмотр профиля
« Ответ #2 : Апрель 17, 2018, 19:10 »

В комбобоксе сделан перебор по имени с клавиатуры, так что операторы не задумываясь находят нужного клиента.
Вопрос не в том, как удобно, вопрос в том, ПОЧЕМУ это так ограничено?
Если где-то указаны ограничения, тогда я перепишу процедуры ввода и редактирования. Но при этом придется переучивать операторов, а это самое сложное в конкретном случае.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Страница сгенерирована за 0.159 секунд. Запросов: 22.