Russian Qt Forum

Qt => Базы данных => Тема начата: ecspertiza от Сентябрь 01, 2009, 08:31



Название: Сортировка
Отправлено: ecspertiza от Сентябрь 01, 2009, 08:31
Граждане программисты помогите разобраться с нубской проблемой, я в упор не могу понять как сделать сортировку, посмотрел демку стандартную masterdetail , насколько я понял там сортировка просто включается строчкой QTableView::setSortingEnabled(true); Но видимо нужно ещё что то сделать ибо у меня так не работает, почитал книжку Бланшета раздел про БД но там тоже ничего не нашёл. В качестве модели использую QSqlQueryModel.


Название: Re: Сортировка
Отправлено: BRE от Сентябрь 01, 2009, 09:10
Почитай про SQL-запросы, в частности про ORDER BY:
SELECT ... ORDER BY ...;


Название: Re: Сортировка
Отправлено: ecspertiza от Сентябрь 01, 2009, 09:41
Не ну то что так можно решить это мне понятно, но опять же в демке masterdetail никаких лишних запросов не создаётся, ну или я по крайне мере  не нашел где это происходит, я просто думал что это можно решить как то на уровне представления, ну или модели.


Название: Re: Сортировка
Отправлено: BRE от Сентябрь 01, 2009, 10:08
Не ну то что так можно решить это мне понятно, но опять же в демке masterdetail никаких лишних запросов не создаётся, ну или я по крайне мере  не нашел где это происходит, я просто думал что это можно решить как то на уровне представления, ну или модели.
В masterdetail используется модель QSqlRelationalTableModel, которая для сортировки сама формирует SQL-запрос (добавляя в него ORDER BY). Ты же используешь QSqlQueryModel, который полагается на тебя.


Название: Re: Сортировка
Отправлено: ecspertiza от Сентябрь 01, 2009, 10:27
Понятно этого я и боялся, спасибо за ответ.


Название: Re: Сортировка
Отправлено: voronElf от Сентябрь 01, 2009, 10:29
Для сортировок вроде как подходит QSortFilterProxyModel. Только не знаю точно как сработает на больших объемах данных, QSqlQueryModel частями данные из БД тягает и QSortFilterProxyModel может только выбранные данные отсортировать, эт потестить нада где-то на 1000 записей.


Название: Re: Сортировка
Отправлено: ecspertiza от Сентябрь 01, 2009, 11:32
voronElf, +1, то что доктор прописал, спасибо.