Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Постраничный вывод на ASP + MSSQL

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Ascenter



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Такая ситуация:
 
пишу на ASP (классика), подключаюсь к БД MS SQL 2000, вывожу циклом в таблицу данные. Сейчас не много, так как страничка не популярна. Но через неделю будет по 15-20 строк в день. Хочу организовать постраничный вывод,
типа << Prev | 1 | 2 | 3 | Next >> и т.д. по 20 записей на странице.
 
Подскажите, плз, с какой стороны подойти.
 
Заранее спасибо!

Всего записей: 41 | Зарегистр. 18-11-2004 | Отправлено: 21:57 11-07-2006 | Исправлено: Ascenter, 10:34 24-07-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ascenter
полностью аналогично этому
PHP&MySQL: Постраничный вывод

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:46 11-07-2006
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
в MSSQL нету limit насколько я помню. только top, но он принимает 1 значение только:
 
select top 100 * from table order by column desc
 
как вариант:  
каждой новости проставлять айди, и при переносе на страницу выводить ссылку аля:
?start=номер_последней_новости_на_странице
 
 
и тогда через where
 
или такой вариант возможен:

Код:
 
select * from (
 select top 10 emp_id,lname,fname from (
    select top 30 emp_id,lname,fname
    from employee
   order by lname asc
 ) as newtbl order by lname desc
) as newtbl2 order by lname asc
 

 
но выглядит конечно страшно

----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 03:45 12-07-2006
Ascenter



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Advanced_Guest
Пасиб!
Дойдут руки - через денек-другой выложу сюда этот код на ASP. Мож кому-то пригодится.

Всего записей: 41 | Зарегистр. 18-11-2004 | Отправлено: 21:48 12-07-2006
Ascenter



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вот, что получилось:
(может, немного криво, но работает)
 

Код:
 
//Кол-во записей
Set calcRs = oConn.execute ("SELECT count(order_id) as total_orders from sd_orders")
total_orders = calcRs.fields("total_orders")
 
//Записей на странице
per_page = 20
 
//Кол-вл страниц
pages_count = (total_orders \ per_page) + 1
 
//Текущая страница
cur_page = total_orders Mod per_page
 
//Страница №
Dim page
If Len(Request("page"))=0 Then
  page = 1
Else
  page = Request("page")
End If
 
// Подготовка переменной для запроса
If (total_orders - (per_page*page)) Mod per_page => 0 Then
  cel = per_page
Else
  cel = cur_page
End If
 
//Запрос
set aRs = oConn.execute ("select * from (select top "&cel&" * from (SELECT top "&per_page*page&" //список необходимых полей// ) as newtbl order by incoming_date asc) as n order by incoming_date desc")
 
//Прорисовка страниц
For i=1 To pages_count
  If i = page Then
    Response.write "<b>"&i&"</b>"
  Else
    Response.write " | <a href=index.asp?page="&i&">"&i&"</a> |"
  End if
Next
 

Вот так. Есть есть замечания/рекомендации - буду рад!

Всего записей: 41 | Зарегистр. 18-11-2004 | Отправлено: 12:15 14-07-2006
Ascenter



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Слышал, что запрос к MSSQL, и, следовательно, сам постраничный вывод можно организовать с помощью курсоров. Никто не пробовал? Если да, то подскажите, пожалуйста, как это сделать.

Всего записей: 41 | Зарегистр. 18-11-2004 | Отправлено: 10:37 24-07-2006
Forward13

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ascenter
 

Цитата:
Слышал, что запрос к MSSQL, и, следовательно, сам постраничный вывод можно организовать с помощью курсоров. Никто не пробовал? Если да, то подскажите, пожалуйста, как это сделать.  

 
Посмотри здесь. Вариант номер 4 - то, о чем ты спрашивал.
http://www.sql.ru/faq/faq_topic.aspx?fid=105

Всего записей: 35 | Зарегистр. 19-01-2004 | Отправлено: 20:22 04-01-2007
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Постраничный вывод на ASP + MSSQL


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru