Рекомендуется: используйте ASP, чтобы вызовать виды и сохраненные процедуры в базе данных 1. Предисловие ASP (Active Server Pages)-это среда сценариев на стороне сервера, которая поддерживается Microsoft II3.0 или выше. Его можно использовать для создания динамических веб -страниц или для создания мощных веб -приложений. Страницы ASP включают HTML -теги, текст и
Что такое лицензионный дисплей, когда ADO обращается к базам данных? Если в настоящее время вы использовали программу электронного доски объявлений на многих веб -сайтах, вы должны знать, что для улучшения скорости чтения страницы программа электронной доски объявлений, как правило, не перечисляет все сообщения на одной странице, но разделяет их на несколько страниц для отображения определенного количества постов на страницу, таких как 20 сообщений. Это лицензионный дисплей запросов базы данных. Если вы еще не понимаете этого, вы поймете это, посмотрев на результаты запроса поисковых систем, таких как Yahoo.
Итак, как мы можем нанести на стражу результаты запроса базы данных? На самом деле есть много способов, но есть два основных способа:
1. Прочитайте все записи в базе данных, которые соответствуют условиям запроса в набор записей одновременно, и храните их в памяти. Затем управляйте обработкой пейджинга через несколько атрибутов, предоставленных объектом Ado Recordset, который специально поддерживает обработку подкидки: Pageize (размер страницы), Pagecount (номер страницы) и AbsolutePage (Absolute Pages).
2. Согласно инструкциям клиента, указанное количество записей должно быть зачитано и отображается из записей, которые каждый раз соответствуют условиям запроса.
Основное различие между ними заключается в том, что первое зачитывает все записи в память одновременно, а затем выносит суждения и анализ в последовательности в соответствии с инструкциями по достижению эффекта дисплея лиц, в то время как последний делает суждения, основанные на инструкциях и читает указанное количество записей, которые соответствуют условиям запроса в память, тем самым непосредственно выполняя функцию демонстрации питания.
Мы можем четко почувствовать, что когда количество записей в базе данных достигает десятков тысяч или более, эффективность выполнения первого метода будет значительно ниже, чем у второго метода, потому что, когда каждый клиент запрашивает страницу, все записи, соответствующие критериям, должны храниться в памяти сервера, а затем проводятся другие записи. Если более 100 клиентов запрашивают онлайн одновременно, то эффективность выполнения приложения ASP будет сильно затронута. Однако, когда количество записей на сервере и количество людей в Интернете одновременно не очень большое, эффективность выполнения двух почти одинакова. В настоящее время первый метод обычно принимается, потому что написание программы ASP первого метода намного проще и яснее, чем второй метод.
Здесь автор примет нашу общую программу ASP BBS в качестве примера для анализа, как реализовать функцию отображения лиц в программе BBS. Поскольку количество записей базы данных и количество людей, получающих доступ одновременно в программе BBS, которые мы обычно используем, не слишком много, поэтому следующие примеры программы являются первым методом отображения страниц, представленным ранее.
Дисплей на страницах, когда ADO обращается к базе данных, на самом деле для работы записей записей. Поэтому мы должны сначала понять свойства и методы объекта Reordset:
Атрибут BOF: текущий индикатор относится к первой транзакции в сетевой набор записей.
Атрибут EOF: текущий индикатор относится к последней транзакции в набор записей.
Метод перемещения: перемещать метрики в запись в наборе записей.
Свойство AbsolutePage: Устанавливает текущее местоположение записи, на которой находится страница. Свойство AbsolutePosition: текущее местоположение метрики в наборе записей.
Свойство Pagecount: отображает, сколько страниц данных содержит объект записи.
Свойство Pagesize: отображает количество записей, отображаемых на каждой странице объекта записи.
Свойство RecordCount: отображает общее количество записей объекта записи.
Давайте внимательнее рассмотрим эти важные атрибуты и методы.
1. Атрибуты BOF и EOF
Обычно мы пишем код в программе ASP, чтобы проверить атрибуты BOF и EOF, чтобы узнать местоположение записей, указанное текущим индикатором. Используя атрибуты BOF и EOF, мы можем знать, содержит ли объект записи записи или превышает ли строка движущейся записи о сфере объекта записи.
нравиться:
< %, если не rs.eof, то ... %>
< %, если нет (rs.bof и rs.eof) %>
Если текущая позиция записи находится перед первой строкой объекта записи, свойство BOF возвращает true, в противном случае оно возвращает false.
Если текущая позиция записи находится после последней строки объекта записи, свойство EOF возвращает true, в противном случае оно возвращает false.
И BOF, и EOF являются ложными: означает, что индикатор находится в наборе записей.
BOF это правда: текущий индикатор относится к первой записи в сетере Record. EOF верно: текущий индикатор относится к последней записи к набору записи.
И BOF, и EOF верны: в наборе записей нет записей.
2. Метод перемещения
Вы можете использовать метод перемещения для перемещения метрик в запись в наборе записи, с синтаксисом следующим образом:
Rs.Move NumRecords, Start
Здесь RS является переменной объекта, указывающая объект записи, который хочет перемещаться, когда текущая позиция записи; NumerCords - это положительная и отрицательная формула расчета чисел, которая устанавливает количество движений текущей позиции записи; Start - это необязательный элемент для указания метки для начала записи.
Все объекты записи поддерживают метод перемещения. Если параметр numercords больше нуля, текущая позиция записи перемещается до конца; Если он меньше нуля, текущая позиция записи перемещается до начала; Если пустой объект записи вызывает метод перемещения, будет сгенерирована ошибка.
Метод перемещения FIRST: переместите позицию текущей записи в первую запись.
Метод Movelast: переместите текущую позицию записи в последнюю запись.
Метод Movenext: переместите текущую позицию записи в следующую запись. MovePrevious Метод: переместите текущую позицию записи в предыдущую запись.
Move [n] Метод: переместить индекс в N -й Pen Record, N начинается с 0.
3. Абсолютные атрибуты
Свойство AbsolutePage устанавливает номер страницы страниц, на которой находится страница текущая запись; Используйте свойство PageSize, чтобы разделить объект RecordSet на логические страницы, а количество записей для каждой страницы составляет PageSize (за исключением последней страницы, которая может иметь меньше, чем записи PageSize). Здесь следует отметить, что не все поставщики данных поддерживают это свойство, поэтому будьте осторожны при использовании его.
Так же, как и свойство AbsolutePosition, свойство AbsolutePage начинается с 1. Если текущая запись является первой строкой набора записей, AbsolutePage составляет 1. Свойство AbsolutePage может быть установлено для перемещения в позицию записи первой строки указанной страницы.
4. Собственность абсолюции
Если вам нужно определить текущее местоположение метрики в наборе записей, вы можете использовать свойство AbsolutePosition.
Значение свойства абсолюции является позицией текущего индикатора относительно первой транзакции, которая начинается с 1, то есть абсолютное зацепление первой транзакции составляет 1.
Обратите внимание, что при доступе к Recordsets нет никакой гарантии, что Recordsets будет отображаться в одном и том же порядке каждый раз.
Чтобы включить абсолютное разложение, вы должны сначала установить его для использования курсора пользователя (указателя), а код ASP заключается в следующем:
rs2.cursorlocation = 3
5. Pagecount Property
Используйте свойство Pagecount, чтобы определить, сколько страниц данных содержит объект записи. Страница здесь представляет собой набор записей данных, и ее размер равен настройке свойства PageSize. Даже если количество записей на последней странице меньше, чем значение страниц, последняя страница считается страницей Pagecount. Следует отметить, что не все поставщики данных поддерживают это свойство.
6. Атрибут страниц
Свойство PageSize является ключом к определению того, как ADO Paginates при доступе к базам данных. Используя его, вы можете решить, сколько записей с логической страницей. Устанавливает и создает размер страницы, позволяя перемещать свойство AbsolutePeage в первую запись других логических страниц. Свойство Pagesize может быть установлено в любое время.
7. собственность записи
Это также очень распространенное и важное свойство. Мы часто используем свойство RecordCount, чтобы узнать, сколько записей содержит объект записи. Например: < %totle = rs.recordCount %> После понимания вышеуказанных свойств и методов объекта записи, давайте рассмотрим, как их использовать для достижения цели нашего листового дисплея. Во -первых, мы можем установить значение для свойства PageSize, тем самым указав количество строк, которые составляют страницу, взятую из группы записей; Затем используйте свойство RecordCount, чтобы определить общее количество записей; Затем разделите общее количество записей на страницы размером, чтобы получить общее количество отображаемых страниц; Наконец, доступ к указанным страницам может быть завершен с помощью свойства AbsolutePeage. Это кажется очень сложным. Давайте посмотрим, как должна реализовать программу?
Мы создали такое простое приложение BBS, которое имеет следующие пять полей в своей базе данных: ID, автоматическое число каждого поста; предмет, предмет каждого поста; Имя, имя пользователя, добавив пост; Электронная почта, адрес электронной почты пользователя; Постдат, время добавления поста. DSN базы данных - BBS. Мы разместили все шаги в отображении Post Paging в процессе Showlist () для легкого вызова. Процедура заключается в следующем:
| Ниже приведено цитируемое содержание: /'---- BBS SHOW POST PAGGING ---- < %Sub Show ShowSlist () %> < % PGSZ = 20 /'SET SWEAL Установить conn = server.createObject (adodb.connection) Установить rs = server.createObject (adodb.recordset) SQL = SELECT * из порядка сообщений по id desc /'Запрос всех сообщений и расположить их в обратном порядке по идентификатору почты Conn.Open BBS Rs.open SQL, 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> topic < /b> < /td> <td> <b> пользователь < /b> < /td> <td> <b> email < /b> < /td> <td> <b> Делать, пока нет (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 = get action = list.asp> <Input type = hidden name = pageno value = < % = pageno % >> < % Если Pageno> 1, то response.write <input type = spect name =/'scollaction/' value =/'предыдущая страница/'> конец, если Если rowcount = 0 и pageno <> total тогда response.write <input type = spect name =/'scollaction/' value =/'next page/'> конец, если response.write < /form> Конец, если %> < % End sub %> |
Я считаю, что каждый должен быть в состоянии полностью понять вышеупомянутую программу, поэтому автор не объяснит ее подробно здесь. Стоит отметить, что в этой программе использовался небольшой трюк, <input type = hidden name = pageno value = < % = pageno % >>, который является секретным отрывком, используемым для передачи данных каждый раз, когда вызывается файл ASP. Поскольку нам необходимо передавать параметры, представляющие текущий номер страницы каждый раз, когда называется программа, вы можете подумать об использовании сеанса, но с точки зрения сохранения системных ресурсов и универсальности, использование такой скрытой формы для передачи данных достигнет лучших результатов.
Хорошо, пришло время снова попрощаться. Если вы не до конца понимаете программы, перечисленные в этой статье, вы должны добавить немного топлива в грамматику VBScript; Если у вас есть несколько вопросов, я могу сделать все возможное, чтобы ответить на них; Если у вас есть лучшие предложения, пришлите мне письмо.
Поделиться: генерировать статические веб -страницы, заменив теги Все знают, что HTML -статические веб -страницы с большей вероятностью будут индексировать поисковые системы. Динамическое генерация веб -страниц HTML также может увеличить количество веб -страниц на веб -сайте, а поисковые системы могут также включать больше. Какой смысл улучшить качество веб -страниц? Я думаю, что все тоже это знают. для