Russian Qt Forum

Qt => Базы данных => Тема начата: masha от Июнь 24, 2009, 16:27



Название: QSqlRelationTableModel & QDataWidgetMapper
Отправлено: masha от Июнь 24, 2009, 16:27
Qt 4.4, БД MSSql.
На необязательном поле с ключом foreign ставлю    
m_pModel->setRelation(1, QSqlRelation("..", "..", ".."));
Заполняю через mapper. Виджет в маппере, соответствующий этому поле - ComboBox, выдает список значений дочерней таблицы соответствующего столбца.
ВОПРОС: почему, если я НЕ выбираю никакого значения, в БД запись попадает (со значением NULL этого поля), а в таблице НЕ отображается??!! Если значение указывать - всё хорошо.
Так же есть другая дочерняя таблица, к ней ссылка идет по двум полям из одной таблицы. Так вот, чтобы в таблице вставляемая запись отобразилась, надо заполнить хотя бы одно из них.


Название: Re: QSqlRelationTableModel & QDataWidgetMapper
Отправлено: masha от Июнь 24, 2009, 16:46
нет, всё-таки она отображает пустые поля в записи, только для этого надо в маппере именно выбрать пустю запись в комбобоксе. Ну пользователя ведь не заставишь... Ерунда какя-то. Это что-то из разряда, когда в QDateTimeEdit вместо пусто отображается дата пу умолчанию, зачем она мне...


Название: Re: QSqlRelationTableModel & QDataWidgetMapper
Отправлено: ритт от Июнь 24, 2009, 20:22
http://qt.gitorious.org/qt/qt/merge_requests/614 - режектед с советом переработать код.
http://qt.gitorious.org/qt/qt/merge_requests/664 - вторая попытка с переработанным кодом. ждёт принятия решения