Мое наивное предположение, учитывая, что я очень мало знаю об ADODB, заключается в том, что поставщик Oracle для ADODB не поддерживает подкачку страниц. Документация для свойства AbsolutePage
действительно предлагает следующее:
Поставщик должен поддерживать соответствующую функциональность, чтобы это свойство было доступно.
Таким образом, вместо подкачки страниц в ADO и VB.NET вы можете выполнять подкачку в запросе Oracle.
Типичный способ выполнения пейджинга в Oracle - использовать запрос, подобный следующему. Это возвращает 31-ю к 40-й строкам таблицы some_table
, что будет для 4-й страницы 10-строчных страниц:
SELECT a, b, c
FROM (SELECT a, b, c, ROWNUM as num
FROM some_table
WHERE ROWNUM <= 40)
WHERE num > 30
Два числа в этом запросе должны быть PageNum * ThePageSize
и (PageNum - 1) * ThePageSize
в этом порядке.
Обратите внимание, что если запрос, который вы пытаетесь отобразить на странице, содержит предложение ORDER BY
или предложение GROUP BY
, вам нужно переместить его в другой подзапрос. Например, если бы нам нужно было отсортировать по столбцу b
и затем отобразить результаты, мы бы использовали что-то вроде:
SELECT a, b, c
FROM (SELECT a, b, c, ROWNUM as num
FROM (SELECT a, b, c
FROM some_table
ORDER BY b)
WHERE ROWNUM <= 40)
WHERE num > 30