artzub
@artzub
Программист

IBDataSet Sorting by CalcFields?

Привет!


Ой… народ бяда у меня!!!


Дано:

1. IBDataSet. Со всеми настроенными запросами, и очень важным запросом RefreshSLQ

2. У датасета есть вычисляемое поле SUMM, вычисляется хитро средствами SQL не решить.

3. cxGridDBTableView в режиме GridMode(То есть отображает сортировку так как она есть в DataSet, и отображает только небольшое количество записей остальные докачивает по необходимости). В другой режим переводить нельзя, так как большой объем данных.


Задача:

Отсортировать данные по полю SUMM.


Как это сделать?
  • Вопрос задан
  • 2535 просмотров
Пригласить эксперта
Ответы на вопрос 1
@tvadim
imho для того чтобы отсортировать по полю его значения должны быть уже известны перед началом сортировки. А у Вас они вычисляются только походу подгрузки. Тут надо либо постановку задачи менять, либо делать хранимую процедуру где вычислять значение этого поля, либо если там не хватает функционала, то писать udf (ib/fb это позволяют). Но это все равно ничего не даст, т.к. данные пользователю нужно отправлять уже в отсортированном виде, а для этого надо рассчитать это поле уже для всех записей.
Если есть возможность, то может это поле рассчитывать уже при добавлении /обновлении записей в этой таблице. Плюс для этого поля еще создать индекс, но тут нужно смотреть на сколько он будет уникален.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы