Сведения о вопросе

Henry

16:40, 1st October, 2020

Теги

Delphi    

IBDataSet Sorting by CalcFields?

Просмотров: 364   Ответов: 1

Привет!


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


Дано:

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

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

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


Задача:

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


Как это сделать?



  Сведения об ответе

FAriza

08:36, 25th September, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться