LINUX.ORG.RU

[Qt, лол] Как получить значение из модели, на которой висит relation?


0

0

Есть QSqlRelationalTableModel, в которой одна колонка установлена как foreign key к другой модели. Скажем,

table1->setRelation(Column_NameId, QSqlRelation("table2", "id", "name"));

Как получить само значение ячейки в Column_NameId из table1, если table1->data(...) возвращает замапленное значение name из table2? Или как получить строку из table2, на которую указывает foreign key из колонки Column_NameId в table1?

★★★★★

Дай угадаю, setRelation(Column_NameId, QSqlRelation()), посмотреть значение и вернуть обратно все как было?

tarcar
()
Ответ на: комментарий от tarcar

>Дай угадаю, setRelation(Column_NameId, QSqlRelation()), посмотреть значение и вернуть обратно все как было?

Хах, и это в каждом вызове data()? А не мускуль не сдохнет от такого кол-ва селектов?

lester_dev ★★★★★
() автор топика
Ответ на: комментарий от lester_dev

Из исходников Qt:

QVariant QSqlRelationalTableModel::data(const QModelIndex &index, int role) const
{
    Q_D(const QSqlRelationalTableModel);

    if (role == Qt::DisplayRole && index.column() > 0 && index.column() < d->relations.count() &&
            d->relations.value(index.column()).isValid()) {
        // skipped
    }
    return QSqlTableModel::data(index, role);
}

anonymous
()
Ответ на: комментарий от lester_dev

Я намекал на то, что можно переопределить data метод и вызывать в нем QSqlTableModel::data, когда нужно.

anonymous
()
Ответ на: комментарий от anonymous

>Я намекал на то, что можно переопределить data метод и вызывать в нем QSqlTableModel::data, когда нужно.

думаешь я не пробовал? QSqlTableModel::data() возвращает таки тоже самое. В рассылке мне сказали это не лечится, пришлось извращаться с запросами.

lester_dev ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.