понедельник, 21 марта 2016 г.

QSqlRelationalTableModel и setFilter()

При использовании класса QSqlRelationalTableModel для работы с таблицей БД, содержащей внешние ключи, я столкнулся с проблемой установки фильтров посредством функции setFilter(). К сожалению, документация Qt не изобилует объяснениями по работе с данной функцией (что для Qt весьма нетипично), а стоило бы кое-что прояснить...
Особенность заключается в том, что для фильтрации данных по столбцу, для которого вы установили, к примеру
my_relation_table_model->setRelation(3, QSqlRelation("customers", "id", "name"));
фильтр будет выглядеть следующим образом
my_relation_table_model->setFilter("relTblAl_3.name='" + some_text + "'");
Вы поняли? Такая дикая неочевидность, да еще и никак не отраженная в документации, меня весьма удивила.

Спасибо вот этой заметке. Сам бы я долго гадал.

Комментариев нет:

Отправить комментарий