Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Разработка баз данных _ ComboBox и mapper проблема с индексом более 255

Автор: AlexMad 16.4.2018, 16:30

Собственно, есть БД 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.


Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)