Механизм доступа к базе данных не очень хорошо справляется с этим: собственный синтаксис TOP N
возвращает связи, и параметр N
не может быть параметризован; оптимизатор не совсем хорошо обрабатывает эквивалентную конструкцию подзапроса :(
Но, честно говоря, это то, что SQL вообще не очень хорошо обрабатывает. Это один из немногих сценариев, где я бы рассматривал динамический SQL (дрожь). Но сначала я хотел бы рассмотреть возможность использования классического набора записей ADO, который имеет свойства AbsolutePage
, PageCount
и PageSize
(чего, впрочем, нет в библиотеках DAO).
Вы также можете рассмотреть возможность использования малоизвестного синтаксиса LIMIT TO nn ROWS
Access Database Engine. Из справки Access 2003 :
Возможно, вы захотите использовать ANSI-92 SQL для
следующие причины ... ...
- Использование предложения
LIMIT TO nn ROWS
для ограничения количества строк, возвращаемых запросом
Может пригодиться?
... мой язык прочно вошел в мою щеку :) Этот синтаксис не существует в Access Database Engine и никогда не существует. Вместо этого это еще один пример ужасающего состояния документации Access на стороне двигателя дома.
Подходит ли продукт по назначению, если в документации имеются большие дыры и контент не может быть доверенным? будьте бдительны.