QSqlRelationTableModel SetRelation возвращает NULL при добавлении новой строки, Новая строка не отображается если в подменяемом поле стоит NULL |
Здравствуйте, гость ( Вход | Регистрация )
QSqlRelationTableModel SetRelation возвращает NULL при добавлении новой строки, Новая строка не отображается если в подменяемом поле стоит NULL |
mishabard |
27.6.2011, 21:59
Сообщение
#1
|
Студент Группа: Участник Сообщений: 31 Регистрация: 13.6.2011 Из: Киев Пользователь №: 2741 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте!
Использую QSQLRelationTableModel QTableView Есть две таблицы поля у которых связанные между собой таким образом: kassaModel->setRelation(kassaModel->fieldIndex("idstat"),QSqlRelation("statlist","id","name")); kassaModel->setRelation(kassaModel->fieldIndex("idpartner"),QSqlRelation("partner","id","name")); Вопрос первый: При отображении в QTAbleView получается два поля после подмены NAME, STATLIST_NAME_2 Можно как-то переназвать эти поля( не заголовки в представлении!!!! а именно название полей), например чтобы потом было удобно ими пользоваться и не вспоминать все эти названия? Второй вопрос: при добавлении новой записи в kassaModel связанные поля idstat, idpartner имеют значения NULL потому как в них еще не установленны соответсвия из связанных таблиц. И поэтому новые записи не появляются в TableView. Как это решить? В официальной документации вычитал что никак!!!????((((( |
|
|
tp4 |
28.6.2011, 15:04
Сообщение
#2
|
Студент Группа: Участник Сообщений: 32 Регистрация: 1.10.2009 Пользователь №: 1128 Спасибо сказали: 1 раз(а) Репутация: 0 |
Второй вопрос: при добавлении новой записи в kassaModel связанные поля idstat, idpartner имеют значения NULL потому как в них еще не установленны соответсвия из связанных таблиц. И поэтому новые записи не появляются в TableView. Как это решить? В официальной документации вычитал что никак!!!????((((( QSqlRelationalTableModel::seclectStatement() возвращает запрос вида: SELECT ... FROM table1 tb1, table2 tb2 WHERE (tb1.fk = tb2.id) AND (<условия фильтра>) ORDER BY <что-нибудь> Можно переопределить этот метод, чтобы он использовал внешние join'ы: SELECT ... FROM table1 tb1 LEFT JOIN table2 tb2 ON (tb1.fk = tb2.id) WHERE (<условия фильтра>) ORDER BY <что-нибудь> |
|
|
Текстовая версия | Сейчас: 29.11.2024, 15:45 |