ADO Accelerate Script via GetString()

Please use the GetString() method to accelerate your ASP script (instead of multi-line Response.Write).

Example

Using GetString()
How to use GetString() to display data from a recordset in an HTML table.

Multi-line Response.Write

The following example demonstrates a method for displaying a database query in an HTML table:

<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>

For a large query, this will increase the script processing time, as the server needs to process a large number of Response.Write commands.

The solution is to create the entire string from <table> to </table> and then output it - using only one Response.Write.

GetString() method

The GetString() method allows us to display all strings using only one Response.Write, without the need for do..loop code or condition tests to check if the recordset is at EOF.

Syntax

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

To create an HTML table using data from the recordset, we only need to use three of the above parameters (all parameters are optional):

  • coldel - HTML used as column delimiter
  • rowdel - HTML used as row delimiter
  • nullexpr - HTML used when a column is empty

Note:The GetString() method is a feature of ADO 2.0. You can download ADO 2.0 from the following address:http://www.microsoft.com/data/download.htm

In the following example, we will use the GetString() method to store the recordset as a string:

<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>

The variable str above contains a string of all columns and rows returned by the SELECT statement. There will be </td><td> between each column, and </td></tr><tr><td> between each row. In this way, we get the needed HTML with only one Response.Write.