Russian Qt Forum

Qt => Базы данных => Тема начата: SABROG от Апрель 02, 2007, 11:13



Название: QSqlRelationalTableModel проблемка с несуществующими ключами
Отправлено: SABROG от Апрель 02, 2007, 11:13
Есть у меня задумка, хочу сделать вкладку с QTableView, где каждый столбец - параметры программы, которые храняться в таблице, в ней есть колонки с ключами, которые ссылаются на данные в другой таблице (relationship). Я хочу пользователю предоставить возможность выбора или не выбора некоторых параметров из комбобокса. Для этого я использовал QTable View + QSqlRelationalTableModel + QSqlRelationalDelegate. Таблицы откуда берутся данные для комбобоксика по сути копии таблиц на сервере, сделано для уменьшения нагрузки на сервер и решения проблем с задержками при запросах.
Эти таблицы могут меняться, некоторые записи удаляться. В итоге в моей основной таблице могут существовать поля с ключами, которые уже не существуют. И тут возникает проблема, дело в том, что QSqlRelationalTableModel нифига не показывает такие строки считая их неверными. Но мне то надо дать пользователю возможно выбрать любое другое поле взамен несуществующего. Есть какая-нибудь возможность заставить эту модель показывать все строки ? Или опять придется изобретать велосипед ?

В общем думаю отказаться от этой модели, увидел такую запись в исходном коде QtSqlRelationaDelegate где идет выбор итема комбика по тексту:

Код:

combo->setCurrentIndex(combo->findText(sqlModel->data(index).toString()));


Для меня не приемлимо, я все-таки придерживаюсь того, что итемы с одинаковым именем могут иметь разные ключи в базе. Придется свой делегат делать на основе QStandartItemModel