Topic: Отобразить определенное количестово записей в таблице

Добрый день. Есть пример http://myvisualdatabase.com/forum/viewtopic.php?id=3864
В нем с помощью dbLimit устанавливают количество записей выводимых в таблицу.
Можно ли как то сделать допустим выводим 500 записей, а при нажатии на кнопку например "показать следующие 500 записей" и при этом показались следующие 500 записей а предыдущие 500 не показывались и т.д.

Re: Отобразить определенное количестово записей в таблице

Evgeniy D, в приведённом выше примере отражена возможность ограничения на отображение данных на уровне компонента интерфейса, которая спасает от зависания и переполнения, если запрос вернул очень много данных.


То, о чем вы спрашиваете, называют пагинацией (постраничным отображением данных), и легко реализуется на уровне SQL-запроса с помощью ключевых слов OFFSET и LIMIT. Например, запрос:

SELECT * FROM table1 LIMIT 20 OFFSET 40;

вернёт 20 записей, пропустив от начала 40 записей.


Подробней об использовании этих возможностей в SQLite можете почитать здесь: http://www.sqlite.org/lang_select.html#limitoffset и здесь: http://zametkinapolyah.ru/zametki-o-mys … qlite.html

Визуальное программирование: блог и телеграм-канал.

3 (edited by sts36 2018-02-27 15:23:01)

Re: Отобразить определенное количестово записей в таблице

k245 wrote:

легко реализуется на уровне SQL-запроса с помощью ключевых слов OFFSET и LIMIT

Добрый день, при таком выводе данных не могу открыть форму редактирования. dbItemID у TableGrid всегда -1. Есть идеи как исправить?

 frmMain.TableGrid4.dbSQL:='SELECT DISTINCT ... LIMIT 50 OFFSET '+inttostr(cp*50)+'';
 frmMain.TableGrid4.dbGeneralTable := 'REC';
 frmMain.TableGrid4.dbSQLExecute;

UPD: При любом запросе реализованном таким способом не даёт открыть форму для просмотра/редактирования, пишет "Не выбрана запись для редактирования"...

Re: Отобразить определенное количестово записей в таблице

Мне кажется в SQL запросе было упущено поле id, вот программа и не знает что вы выбрали в гриде

Re: Отобразить определенное количестово записей в таблице

indigen wrote:

Мне кажется в SQL запросе было упущено поле id, вот программа и не знает что вы выбрали в гриде

Точно... Спасибо, запрос большой упустил...