Учебники ASP

ГЛАВНАЯ АСП

Учебник по WP

Введение в веб-страницы Веб-страницы Razor Макет веб-страниц Папки веб-страниц Веб-страницы Глобальные Формы веб-страниц Объекты веб-страниц Файлы веб-страниц Базы данных веб-страниц Помощники веб-страниц Веб-страницы Графики веб-страниц Электронная почта веб-страниц Безопасность веб-страниц Публикация веб-страниц Примеры веб-страниц Классы веб-страниц

Бритва ASP.NET

Введение в бритву Синтаксис бритвы Переменные Razor C# Циклы Razor C# Логика Razor C# Переменные Razor VB Циклы Razor VB Логика Бритвы В.Б.

АСП Классик

Введение в ASP Синтаксис ASP ASP-переменные Процедуры ASP Условия ASP Зацикливание ASP ASP-формы Файлы cookie ASP ASP-сеанс ASP-приложение ASP #include ASP Global.asa АСП АЯКС Электронная почта ASP Примеры ASP

Справочник ASP

Функции ASP VB Ключевые слова ASP VB Ответ ASP ASP-запрос ASP-приложение ASP-сеанс ASP-сервер Ошибка ASP Файловая система ASP Текстовый поток ASP ASP-диск ASP-файл Папка ASP Словарь АСП ASP AdRotator ASP BrowserCap Связывание контента ASP Ротатор контента ASP Быстрая ссылка ASP

Учебник по ADO

Введение в ADO АДО Коннект Набор записей ADO Дисплей АДО ADO-запрос Сортировка ADO ADO Добавить Обновление ADO АДО Удалить Демонстрация ADO Ускорение ADO

Объекты АДО

Команда АДО ADO-соединение Ошибка ADO Поле ADO ADO-параметр Свойство АДО ADO-запись Набор записей ADO ADO-поток Типы данных ADO

Ускорение ADO с помощью GetString()


Используйте метод GetString(), чтобы ускорить сценарий ASP (вместо использования нескольких Response.Write).


Множественный ответ. Запись

В следующем примере демонстрируется один из способов отображения запроса к базе данных в таблице HTML:

<html>
<body>

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>

<table border="1" width="100%">
<%do until rs.EOF%>
  <tr>
    <td><%Response.Write(rs.fields("Companyname"))%></td>
    <td><%Response.Write(rs.fields("Contactname"))%></td>
  </tr>
<%rs.MoveNext
loop%>
</table>

<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>

</body>
</html>

Для большого запроса это может замедлить время обработки сценария, поскольку многие команды Response.Write должны обрабатываться сервером.

Решение состоит в том, чтобы создать всю строку, от <table> до </table>, а затем вывести ее, используя Response.Write только один раз.



Метод ПолучитьСтроку()

Метод GetString() позволяет отображать строку только с одним Response.Write. Это также устраняет код цикла do... и условный тест, который проверяет, находится ли набор записей в EOF.

Синтаксис

str = rs.GetString(format,rows,coldel,rowdel,nullexpr)

Чтобы создать HTML-таблицу с данными из набора записей, нам нужно использовать только три из указанных выше параметров (все параметры являются необязательными):

  • coldel - HTML для использования в качестве разделителя столбцов
  • rowdel - HTML для использования в качестве разделителя строк
  • nullexpr - HTML для использования, если столбец имеет значение NULL

Примечание. Метод GetString() — это функция ADO 2.0. Вы можете загрузить ADO 2.0 по адресу https://www.microsoft.com/data/download.htm .

В следующем примере мы будем использовать метод GetString() для хранения набора записей в виде строки:

Пример

<html>
<body>

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"

set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn

str=rs.GetString(,,"</td><td>","</td></tr><tr><td>","&nbsp;")
%>

<table border="1" width="100%">
  <tr>
    <td><%Response.Write(str)%></td>
  </tr>
</table>

<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>

Приведенная выше переменная str содержит строку всех столбцов и строк, возвращаемых оператором SQL SELECT. Между каждым столбцом появится HTML </td><td>, а между каждой строкой появится HTML </td></tr><tr><td>. Это создаст именно тот HTML, который нам нужен, только с одним Response.Write.