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