Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разбиение запроса на страници / 8 сообщений из 8, страница 1 из 1
15.01.2001, 16:53
    #32001538
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
как сделать чтонить вроде:
Select TOP 25 FROM Table
SELECT NEXT 25 FROM Table

итд
(данные нельзя сортировать по ID)
Тоесть разбить запрос на страници для размещ. в инете.... (ASP)

Помогите ПЛЗ)
...
Рейтинг: 0 / 0
15.01.2001, 16:54
    #32001539
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=347&Idle=365&Sort=0&Order=Descend&Page=0&Session=
...
Рейтинг: 0 / 0
19.01.2001, 18:05
    #32001641
DRY_GIN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
tipa takogo :
Rs. eto tvoi record set
...
rs.Open SomeQuery,SomeConnection,3
...
rs.PageSize = 25
rs.AbsolutePage = SomePageNumber
...
i vpered
( eche est' rs.PageCount)
...
Рейтинг: 0 / 0
19.01.2001, 18:18
    #32001642
DRY_GIN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
ya zabyl glavnoe, sorry
intCount=1
....
do while not rs.Eof and not rs.Bof and intCount<=25
...
intCount=intCount+1
...
loop
...
Рейтинг: 0 / 0
20.01.2001, 01:28
    #32001649
NetMinion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
ага, а если полученно 100.000 строк?
рекордсет как будет работать?)
и что быстрее ограничить выбор при выборке или потом обрабатывать информацию?)))
...
Рейтинг: 0 / 0
22.01.2001, 04:45
    #32001681
AlxR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
У меня такая же проблема. Сделал следующим образом:

1. Сначала запрос выполняешь целиком. (Плюсы - узнаешь количество возвращенных записей.)
2. Создаешь "временную" таблицу. "Временную" - не в понятиях SQL сервера и еще какой базы, а, например, для каждой активной сессии, т.е. создаешь ее сам. (я так понял, приложение для Web
)В этой таблице добавляешь поле IDENTITY, т.е. теперь каждая запись получается пронумерованной.
3. Запихиваешь результат запроса в эту "временную" таблицу.
4. Теперь, когда пользователь захотел получить, например, 30-тую страницу, делаешь запрос к "временной" таблице, используя BETWEEN, где в его параметрах задаешь "размер" выводимой страницы.

Это вкратце. На практике нужно смотреть еще на некоторые вещи.
1. Если, например, количество возвращенных записей меньше определенного числа, то выгоднее не запихивать результат во "временную " таблицу, а каждый раз выполнять полный запрос и ограничивать разбивку на страницы уже на уровне приложения.
2. Если у запроса меняется только порядок сортировки, адресовать его "временной" таблице.
3. Вовремя удалаять эти самые "временные" таблицы.
Вот, вроде вкратце все )) Удачи!
...
Рейтинг: 0 / 0
22.01.2001, 10:27
    #32001683
VICTOR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
Может такой код заинтересует кого-нибудь.
Declare @i int
Select @i= 0
drop table #t
Select top 18 *,'n'=0,'лист'=0 into #t from m_cenn
update #t Set @i=n=@i+1
update #t Set лист=Round((n-1)/10,0)+1
select лист,n,nm from #t where лист=2
...
Рейтинг: 0 / 0
22.01.2001, 10:30
    #32001685
VICTOR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбиение запроса на страници
Может такой код заинтересует кого-нибудь.
Declare @i int
Select @i= 0
drop table #t
--Это запрос в таблицу
Select top 18 *,'n'=0,'лист'=0 into #t from m_cenn
update #t Set @i=n=@i+1
update #t Set лист=Round((n-1)/10,0)+1
В приложении пользуемся только таблицей #t
select лист,n,nm from #t where лист=2
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разбиение запроса на страници / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]