Прочитав множество вводных статей, я знаю, что эффективность выполнения set rs=conn.execute(sql) намного выше, чем rs.open sql,conn,1,1, но существует множество методов выполнения set rs=conn. Недостатки: прежде всего, у него нет атрибутов подкачки, таких как rs.pagesize, rs, Absolutepage и других атрибутов. Хотя скорость выполнения rs=conn.execute(sql) выше, обычная подкачка невозможна. Что мне делать? ?
На следующий день я проверил информацию в Интернете и вдруг подумал, смогу ли я поместить нужные данные в массив, а затем разбить его на страницы? Во-первых, я взял результат запроса set rs=conn.execute(sql) и прикрепил его к массиву через rs.getrows(), поэтому я искал сообщения с нумерацией страниц на различных веб-сайтах, хотя я нашел много высокоэффективных сообщений с нумерацией страниц. (в том числе хранимые процедуры и т.д.), но оказывается, что все нужно выполнять через SQL, то есть SQL-операторы нужно выполнять при перелистывании страниц. В это время голова кружится, а оптимизируются только SQL-операторы. . На данный момент возможности нет, так что мне придется сделать это самому. Отличная работа! Наконец, я завершил черновой вариант нумерации страниц. Код не очень закончен. Пусть все изучат его вместе! Код выглядит следующим образом:
Сначала есть страница запроса index.asp:
<html xmlns=http://www.w3.org/1999/xhtml>
<голова>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Документ без названия</title>
</голова>
<body><FORM id=SearchForm name=SearchForm метод=post action=search.asp?act=cha>
<класс div=вход>
<input id=keyword onmouseover=this.focus() title=Быстрый поиск записей сообщений onfocus=this.select() class=in maxlength=35 name=keyword />
<select style=width:120px;margin-top:-25px name=ChannelID>
<option value=k2>Оставить комментарий</option>
<option value=k1>Содержимое сообщения</option>
</выбрать>
<Входной идентификатор=search_btn тип=отправить значение=запрос>
</div>
</ФОРМ>
</тело>
</html>
код search.asp:
<html xmlns=http://www.w3.org/1999/xhtml>
<голова>
<meta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Документ без названия</title>
</голова>
<тело>
<%
Если request.querystring(act)=cha Тогда
search_type=request.FORM(идентификатор канала)
ключевые слова = request.form (ключевое слово)
если search_type=k1, то 'Поиск по содержимому сообщения
sql=select * from gbook_rec, где g_content, например '%&keywords&%'
ИначеЕсли search_type=k2, то
'if search_type=k2 then 'Искать по человеку, оставившему сообщение
sql=select * from gbook_rec, где g_name, например '%&keywords&%'
Еще
ответ.конец
конецЕсли
Установите rs=conn.execute(sql)
Если rs.eof И rs.bof Тогда
%>
<div class=search>Запись, которую вы ищете, не найдена! </div>
<%
ответ.Конец
Еще
aResults=rs.getrows()' Извлеките данные и поместите их в массив ROW.
приложение(данные)=aРезультаты
Установить rs=ничего
conn.close 'Закрыть базу данных
Конец ЕСЛИ
Конец, если
aResults=приложение(данные)
Dim i,row,pagesize,epage,numb,pagecount,fenye
numb=UBound(aResults,2)+1 'Общее количество записанных строк
Pagesize=2 'Количество элементов на странице
Если numb Modpagesize = 0, тогда «Оцените общее количество страниц»
pagecount=Int(число/размер страницы)
Еще
pagecount=Int(число/размер страницы)+1
Конец, если
epage=request.querystring(страница)
Если epage= Тогда epage=1
Для i=(epage-1)*pagesize Для epage*pagesize-1
Если i>UBound(aResults,2) Или i<0, то выйти для
%>
<класс div=содержание>
<ul><li>Запись<%=i+1%></li>
<li>Оставить комментарий: <%=aResults(1,i)%></li>
<li>Содержимое: <%=aResults(2,i)%></li>
<li>Время:<%=aResults(3,i)%></li>
<li>IP:<%=aResults(5,i)%></li>
</ul>
</div>
<%
Следующий
Если онемение>размер страницы Тогда
fenye=<a href=search.asp?page=1>Домашняя страница</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>Предыдущая страница</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>Следующая страница</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>последняя страница</a>
фенье=фенье&<BR>
fenye=fenye&Общее количество страниц &pagecount&, текущая страница &epage&, общее количество записей: &numb
ответ.напиши фенье
Конец, если
%>
</тело>
</html>
Резюме: Я думаю, что приведенному выше коду не нужно подключаться к базе данных, за исключением первоначального запроса, и ему не нужно подключаться к базе данных в другое время. Это очень полезно для экономии ресурсов при запросе больших данных или при их наличии. много людей подключаются! Кроме того, массив запросов сохраняется в объекте приложения, и вы также можете судить о том, что кто-то запросил, на основе приложения (данных) (имени пользователя). Однако этот код является первой моделью и должен быть улучшен всеми усилиями. будущее! Надеюсь, все обратят внимание и поддержат, спасибо!
test.rar