Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
отображение (постраничное)
|
|||
|---|---|---|---|
|
#18+
Дамы, Господа, здрасте... Поделитесь, пожалуйста, мыслями. Нужно организовать постраничное отображение данных, типа сначала 1-100 записи, потом 101-200 и т.д. Все, что здесь обсуждалось по поводу нумерации строк запроса я прочел Как-то не очень хочется всю таблицу копировать в # только для того, чтобы пронумеровать записи. Вариант с отдельным полем для номера не подходит, так как заранее не известно, какой вариант сортировки предпочтет клиент... Может кто-то эту проблему принципиально иначе решал? спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2001, 16:47 |
|
||
|
отображение (постраничное)
|
|||
|---|---|---|---|
|
#18+
Скрипт не тестировал, набираю на ходу, поэтому могу ошибиться. Но это не главное - главное идея. Размер порции записей = 100 записей. В таблице SomeTable есть ключевое поле типа int - идентификатор записи ID. Записи могут идти с дырками в нумерации. Требуется выбрать 5-ю порцию записей. declare @PageNumber int declare @StartRec int set @PageNumber=5 -- Нужно выбрать 5-ю порцию set @LastRec=0 -- Идентификатор последней записи предыдущей порции записей while @PageNumber>1 begin set @PageNumber=@PageNumber-1 set @LastRec=(select max(ID) from (select top 100 ID from SomeTable where ID>@LastRec order by ID) SubQ) end /* Теперь в @LastRec находится идентификатор записи, предшествующий первой записи порции, которая должна быть выведена на клиент. Возвращаем порцию: */ select top 100 * from SomeTable where ID>@LastRec order by ID Отсортировать по нужным полям ADODB.Recordset можно и на клиенте (кстати, работает гораздо быстрее, нежели при каждом щелчке по заголовку поля посылать новый запрос на сервер). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2001, 18:12 |
|
||
|
отображение (постраничное)
|
|||
|---|---|---|---|
|
#18+
Эта проблема красиво решается через такие свойства рекордсета, как PageSize и AbsolutePage. Когда все заработает, поиграйтесь со значением свойства CursorLocation. Посмотрите, где будет лучше производительность курсора, на сервере или на клиенте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2001, 22:42 |
|
||
|
отображение (постраничное)
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо ответившим! Идея Garya отличная, но все же остается непонятка с сортировкой (мне нужно не отсортировать страницу, а выбрать страницу из отсортированного множества). А с сортировкой самой страницы нет никаких проблем. Использование особых фич рекордсета не приветствуется в данном проекте, поэтому это отпадает. Еще раз всем большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2001, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3532&tid=1825006]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 332ms |

| 0 / 0 |
