Обычно это делается следующим образом:
Запрос выполняется с order by
обязательным полем и с top
(в некоторых базах данных limit
), установленным на (page_index + 1) * entries_per_page
результаты.Запрос возвращает набор строк с произвольным доступом (вы также можете услышать об этом как о наборе результатов или наборе записей в зависимости от используемой вами библиотеки базы данных), который поддерживает такие методы, как MoveTo( row_index )
и MoveNext()
.Итак, мы выполняем MoveTo( page_index * entries_per_page )
, а затем читаем и отображаем entries_per_page
результаты.Набор строк, как правило, также предлагает свойство Count
, которое мы вызываем, чтобы получить общее количество строк, которые будут извлечены запросом, если мы когда-нибудь позволим ему выполнить его до конца (что, конечно, нет), чтобы мы могли вычислитьи покажите пользователю, сколько страниц существует.