Что такое лицензионный дисплей, когда ADO обращается к базам данных? Если вы использовали программу электронной доски объявлений на многих веб -сайтах, вы должны знать, что для улучшения скорости чтения страницы программа электронной доски объявлений, как правило, не перечисляет все сообщения на одной странице, но вместо этого она разделена на множество Страницы для отображения, и на каждой странице отображается определенное количество сообщений, таких как 20. Хотите знать, как реализовать дисплей на странице? Пожалуйста, прочитайте эту статью!
Статья «Восемнадцать боевых искусств динамического дизайна веб-сайта-большую часть полугода провела с друзьями с друзьями. и практиковать. Из писем, которые я получил от моих друзей, мы можем ясно чувствовать, что навыки APP постоянно улучшаются. Недавно многие друзья написали мне и надеюсь, что я могу написать несколько примеров ASP в реальном использовании. Поэтому, начиная с этого вопроса, я решил перенести позиционирование «восемнадцати боевых искусств динамического дизайна веб-сайта» из введения и изучения базовых знаний ASP на обсуждение и углубление фактической работы ASP. По просьбе моих друзей, в этом выпуске я сосредоточусь на том, как отобразить подключение базы данных ADO при доступе.
Что такое лицензионный дисплей, когда ADO обращается к базам данных? Если вы использовали программу электронной доски объявлений на многих веб -сайтах, вы должны знать, что для улучшения скорости чтения страницы программа электронной доски объявлений, как правило, не перечисляет все сообщения на одной странице, но вместо этого она разделена на множество Страницы для отображения, и на каждой странице отображается определенное количество сообщений, таких как 20. Это лицензионное отображение запросов базы данных.
Итак, как мы можем нанести на стражу результаты запроса базы данных? На самом деле есть много способов, но есть два основных способа:
1. Прочитайте все записи в базе данных, которые соответствуют условиям запроса в сфере записей и храните их в памяти. (Номер страницы) и AbsolutePage (Absolute Page) для управления обработкой пейджинга.
2. Согласно инструкциям клиента, указанное количество записей должно быть зачитано и отображается из записей, которые каждый раз соответствуют условиям запроса.
Основное различие между ними заключается в том, что первое считывает все записи в память одновременно, а затем выносит суждения и анализ в последовательности в соответствии с инструкциями по достижению эффекта дисплея лиц, в то время как последний выносит суждения на основе инструкций и устанавливает Указанное число для соответствия условиям запроса.
Мы можем четко чувствовать, что когда количество записей в базе данных достигает десятков тысяч или более, эффективность выполнения первого метода будет значительно ниже, чем у второго метода, потому что, когда каждый клиент запрашивает страницу, все результаты должны передаваться. Однако, когда количество записей в базе данных на сервере и количество людей в Интернете одновременно невелико, эффективность выполнения двух. Программа ASP первого метода относительно написана. Второй метод намного проще и ясен.
Здесь автор примет нашу общую программу ASPBBS в качестве примера для анализа, как реализовать функцию отображения страниц в программе BBS. Многие.
Дисплей на страницах, когда ADO обращается к базе данных, на самом деле для работы записей записей. Поэтому мы должны сначала понять свойства и методы объекта Reordset:
Атрибут BOF: текущий индикатор относится к первой транзакции в сетевой набор записей.
Атрибут EOF: текущий индикатор относится к последней транзакции в набор записей.
Метод перемещения: перемещать метрики в запись в наборе записей.
Свойство AbsolutePage: Устанавливает текущее местоположение записи, на которой находится страница.
Свойство Pagecount: отображает, сколько страниц данных содержит объект записи.
Свойство Pagesize: отображает количество записей, отображаемых на каждой странице объекта записи.
Свойство RecordCount: отображает общее количество записей объекта записи.
Давайте подробнее рассмотрим эти важные атрибуты и методы
1. Атрибуты BOF и EOF
Обычно мы пишем код в программе ASP, чтобы проверить атрибуты BOF и EOF, чтобы узнать местоположение записей, указанное текущим индикатором. Линия является областью объема объекта Recordset была превышена.
Например: < %, если не rs.eof, то ... %>
< %, если нет (rs.bof и rs.eof) %>
Если текущее местоположение записи находится в объекте записи
Когда первая строка записана, атрибут BOF возвращает true, в противном случае неверно.
Если текущая позиция записи находится после последней строки объекта записи, свойство EOF возвращает true, в противном случае оно возвращает false.
И BOF, и EOF являются ложными: означает, что индикатор находится в наборе записей.
BOF это правда: текущий индикатор относится к первой записи в сетере Record. EOF верно: текущий индикатор относится к последней записи к набору записи.
И BOF, и EOF верны: в наборе записей нет записей.
2. Метод перемещения
Вы можете использовать метод перемещения для перемещения метрик в запись в наборе записи, с синтаксисом следующим образом:
Rs.Move NumRecords, Start
Здесь RS является переменной объекта, указывающая объект записи, который хочет перемещаться, когда текущая позиция записи; стартовый тег.
Все объекты записи поддерживают метод перемещения. Метод, ошибка будет сгенерирована.
Метод перемещения FIRST: переместите позицию текущей записи в первую запись.
Метод Movelast: переместите текущую позицию записи в последнюю запись.
Метод Movenext: переместите текущую позицию записи в следующую запись. MovePrevious Метод: переместите текущую позицию записи в предыдущую запись.
Move [n] Метод: переместить индекс в N -й Pen Record, N начинается с 0.
3. Абсолютные атрибуты
Свойство AbsolutePage устанавливает номер страницы, на которых находится страница; Pageize Records). Здесь следует отметить, что не все поставщики данных поддерживают это свойство, поэтому будьте осторожны при использовании его.
То же самое, что и свойство абсолюции, свойство AbsolutePage начинается с 1. Если текущая запись является первой строкой набора записей, AbsolutePage составляет 1. Свойство AbsolutePage может быть установлено для перемещения в позицию записи первой строки указанной страницы.
4. Собственность абсолюции
Если вам нужно определить текущее местоположение метрики в наборе записей, вы можете использовать свойство AbsolutePosition.
Значение свойства абсолюции является позицией текущего индикатора относительно первой транзакции, которая начинается с 1, то есть абсолютное зацепление первой транзакции составляет 1.
Обратите внимание, что при доступе к Recordsets нет никакой гарантии, что Recordsets будет отображаться в одном и том же порядке каждый раз.
Чтобы включить абсолютное разложение, вы должны сначала установить его для использования курсора пользователя (указателя), а код ASP заключается в следующем:
rs2.cursorlocation = 3
5. Pagecount Property
Используйте свойство Pagecount, чтобы определить, сколько страниц данных содержит объект записи. Страница здесь представляет собой набор записей данных, и ее размер равен настройке свойства PageSize. Полем Следует отметить, что не все поставщики данных поддерживают это свойство.
6. PageSize Property
Свойство Pageize - это ключ к определению того, как Ado Paginates при доступе к базам данных. Устанавливает и создает размер страницы, позволяя перемещать свойство AbsolutePeage в первую запись других логических страниц. Свойство Pagesize может быть установлено в любое время.
7. собственность записи
Это также очень распространенное и важное свойство. Например: < %totle = rs.recordcount %>
После понимания вышеупомянутых свойств и методов объектов записи, давайте рассмотрим, как использовать их для достижения цели нашего листового дисплея. Во -первых, мы можем установить значение для свойства PageSize, тем самым указав количество строк, которые составляют страницу, взятую из группы записей; Чтобы получить общее количество отображаемой страницы; Это кажется очень сложным.
Мы создали такое простое приложение BBS, которое имеет следующие пять полей в своей базе данных: ID, автоматическое число каждого поста; время публикации. DSN базы данных - BBS. Мы разместили все шаги в отображении Post Paging в процессе Showlist () для легкого вызова. Процедура заключается в следующем:
'---- BBS Show Post Paging ---
< %Sub Show ShowSlist () %>
< %
PGSZ = 20 'Set Switch, укажите количество сообщений, отображаемых на каждой странице, по умолчанию - 20 сообщений на страницу
Установить conn = server.createObject (adodb.connection)
Установить rs = server.createObject (adodb.recordset)
SQL = SELECT* из порядка сообщений по id desc
'Запрос всех сообщений и расположить их в обратном порядке по идентификатору сообщения
Conn.Open BBS
Rs.opensql, Conn, 1,1
Если rs.recordcount = 0, то
response.write <p> <Center> Извините, в базе данных нет соответствующей информации! < /center> < /p>
еще
Rs.pearsize = cint (pgsz) 'Установите значение свойства PageSize
Total = int (rs.recordCount / pgsz * -1) * -1 'Рассчитайте общее количество страниц, которые могут отображаться
Pageno = запрос (pageno)
Если pageno = then
Pageno = 1
еще
Pageno = pageno+1
Pageno = pageno-1
конец, если
SCROLLACTE = запрос (SCROLLACTION)
Если scollaction = предыдущая страница, тогда
Pageno = pageno-1
конец, если
Если scollaction = следующая страница, тогда
Pageno = pageno+1
конец, если
Если Pageno <1, то тогда
Pageno = 1
конец, если
n = 1
Rs.absolutepage = pageno
Response.write <Center>
Положение = Rs.PAGESIZE*PAGENO
pagebegin = position-rs.pagesize+1
Если позиция <rs.recordCount, тогда
Pagend = позиция
еще
pagend = rs.recordcount
конец, если
Response.write <p> <font color = 'Navy'> <b> Результат запроса базы данных: < /b>
Response.write (в общей сложности и rs.recordcount & offica, которые соответствуют условиям, дисплею и Pagebegin &-& pagend &) < /font> < /p>
Response.write <таблица ширины = 600 граница = 1 cellpadding = 4 cell -spacing = 0 bgcolor =#ffffff>
Response.write <tr bgcolor =#5fb5e2> <font size = 2> <td> <b> theme < /b> < /td> <td> <b> user < /b> < /td> <td> < B> Электронная почта < /b> < /td> <td> <b> Опубликованная дата < /b> < /td> < /font> <tr bgcolor =#ffffff>
Делать, пока нет (RS - это ничто)
RowCount = rs. -PageSize
Делать, пока не rs.eof и rowcount> 0
Если n = 1 то
Response.write <tr bgcolor =#ffffff>
ЕЩЕ
Response.write <tr bgcolor =#eeeee>
Конец, если
n = 1-n %>
<td> <span style = font-size: 9pt> <a href = 'view.asp? Key = < % = rs (id) %>'> < % = rs (субъект) %> < /a> < / Span> </td>
<td> <span style = font-size: 9pt> < % = rs (имя) %> < /a> < /span> < /td>
<td> <span style = font-size: 9pt> <a href = mailto: < % = rs (электронная почта) % >> < % = rs (электронная почта) %> < /a> < /span> < /td>
<td> <span style = font-size: 9pt> < % = rs (postdate) %> < /span> < /td>
< /Tr>
< %
RowCount = rowCount - 1
Rs.movenext
Петля
Установите RS = Rs.NexTrecordSet
Петля
Conn.close
Установить RS = ничего
установить conn = ничего
%>
< /Table>
<Form method = getAction = list.asp>
<Input type = hidden name = pageno value = < % = pageno % >>
< %
Если Pageno> 1, то
response.write <input type = spect name = 'scollact' value = 'предыдущая страница'>
конец, если
Если rowcount = 0 и pageno <> total тогда
response.write <input type = spect name = 'scollact' value = 'следующая страница'>
конец, если
response.write < /form>
Конец, если
%>
< % End sub %>
Я считаю, что каждый должен быть в состоянии полностью понять вышеупомянутую программу, поэтому автор не объяснит ее подробно здесь. Стоит отметить, что в этой программе использовался небольшой трюк <input type = hidden name = pageno value = < % = pageno % >>, который является секретным отрывом, используемым для передачи данных каждый раз, когда вызывается файл ASP, потому что мы Необходимо передавать параметры, представляющие текущий номер страницы каждый раз, когда мы называем программу, и вы можете подумать об использовании сеанса, но с точки зрения сохранения системных ресурсов и универсальности, используя такую скрытую форму для передачи данных, достигнет лучших результатов.
Хорошо, пришло время попрощаться. ; если у вас есть лучшие предложения, пришлите мне письмо :)