К сожалению, Sybase не предоставляет возможность устанавливать предел запуска и смещения.Лучшее, что вы можете достичь - это использовать SET ROWCOUNT, чтобы ограничить количество возвращаемых записей.Если у вас 1000 записей и вы хотите просмотреть 50 записей, то примерно так будет возвращена первая страница ...
set rowcount 50
select * from orders
Для второй страницы ...
set rowcount 100
select * from orders
... и затем вы можете не отображать первые 50 из вашего Java-кода.Очевидно, что по мере продвижения страницы вам придется возвращать все большие и большие наборы данных.Ваш вопрос о том, что делать с 1 000 000 записей, не кажется практичным для разбитого на страницы пользовательского интерфейса.Ни один пользователь не ищет в Google, а затем просматривает страницы в 1000 раз.
Что если у меня есть естественный ключ?
Если у вас достаточно большой набор данных и вы можете использовать естественный ключвведите ваши данные, это поможет ограничить количество возвращаемых записей.Например, если у вас есть список контактов и интерфейс, который позволяет вашим пользователям выбирать от А до Я для просмотра списка людей в каталоге на основе фамилии, вы можете сделать что-то вроде ...
set rowcount 50
select * from people
where upper(surname) like 'B%'
Когда есть более 50 человек с фамилией, начинающейся с 'B', вы используете тот же подход, что и выше, чтобы перейти на следующую страницу ...
set rowcount 100
select * from people
where upper(surname) like 'B%'
... и удалить первые 50 в коде Java.
Исходя из этого примера, может быть, вы можете ограничить поиск по дате или другим данным, значимым для запросов ваших пользователей.
Надеюсь, это поможет!