diffor (diffor) wrote,
diffor
diffor

Category:

Обновление Qt relation

Часто задают один вопрос, решил его раскрыть в блоге...

Дано:
2 таблицы: "table_main" и "table_rel" со связью по внешнему ключу. Связь идёт через "field_id" первой таблицы к "field" второй таблицы, через её "id" (в кавычках - поля).
На Qt 4 выглядит так:
QSqlRelationalTableModel *model = new QSqlRelationalTableModel;
model->setTable("table_main");
model->setRelation(model->fieldIndex("field_id"),QSqlRelation("table_rel","id","field"));

Классический вариант реляции на Qt 4.

Если обновилась основная таблица - перечитать легко и это есть в доках Qt:
model->select();
Но не всем очевидно (и в доках кстати про это ничего не видел...), что таким образом будут обновлены данные только основной таблицы - нужно обновить ещё и связанные:
model->relationModel(model->fieldIndex("field"))->select();
Tags: model/view, qsqlrelation, qt, qt 4, relation, setrelation, sql
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments