Ускорение скрипта через GetString() в ADO

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

Пример

Использование GetString()
Как использовать GetString() для отображения данных в таблице HTML.

Многострочный 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()

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

Синтаксис

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

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

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

Комментарий:Метод GetString() является функцией ADO 2.0. Вы можете загрузить ADO 2.0 по следующему адресу:http://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>"," ")
%>
<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, находящаяся сверху, содержит строку со всеми столбцами и строками, возвращенными SELECT-запросом. Между столбцами会出现 </td><td> и между строками会出现 </td></tr><tr><td>. Таким образом, используя Response.Write один раз, мы получаем необходимый HTML.