Страница 1 из 1

Бесконечная прокрутка

Добавлено: Вт 03 ноя 2020 08:58
Akella
Доброго времени суток.
Подскажите, какие свойства и методы нужно использовать у uniQuery, чтобы задействовать функционал "бесконечной прокрутки". Т.е. автоматическая дозагрузка (получение данных с сервера) без пагинатора.

Есть есть большой набор данных в веб-приложении (фреймфорк uniGUI) и там есть у сетки (DBGrid) режим "infinite scrolling".
Так вот. Что включить/отключить в настройках компонентов uniDAC, чтобы задействовать бесконечную прокрутку?

Подозреваю, что нужно включить SmartFetch, зашел в справку, а там пусто
https://www.devart.com/unidac/docs/deva ... embers.htm

Спасибо

Re: Бесконечная прокрутка

Добавлено: Ср 04 ноя 2020 15:09
Stellar
Для получения данных из больших таблиц компоненты UniDAC имеет специальный механизм SmartFetch, который минимизирует использование памяти приложением. Когда режим SmartFetch включен, а для параметра LiveBlock установлено значение True, объем выделенной памяти соответствует количеству записей, определенных в свойстве FetchRows. Когда новые записи загружены, дополнительная память не будет выделена, и такие записи будут удалены из памяти.
Для организации быстрой навигации по огромному набору данных UniDAC в режиме SmartFetch выполняет предварительный запрос на сервер, для построения списка значений для ключевых полей. Этот список будет хранится в памяти, пока набор данных будет активным.

Код: Выделить всё

UniQuery1.SQL.Text := 'SELECT id, name FROM Table_Name';
UniQuery1.FetchRows := 100;
UniQuery1.SpecificOptions.Values['FetchAll'] := 'True';
UniQuery1.SmartFetch.Enabled := True;
UniQuery1.SmartFetch.LiveBlock := True;
UniQuery1.KeyFields := 'id';
UniQuery1.Open;