Aceleración de scripts ADO a través de GetString()

Utilice el método GetString() para acelerar su script ASP (en lugar de Response.Write en múltiples líneas).

Ejemplo

Uso de GetString()
Cómo usar GetString() para mostrar datos de un conjunto de registros en una tabla HTML.

Múltiples líneas Response.Write

El siguiente ejemplo muestra un método para mostrar una consulta de base de datos en una tabla 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>
<%
cerrar rs
cerrar conn
set rs = Nothing
set conn = Nothing
%>
</body>
</html>

Para una consulta grande, esto aumentará el tiempo de procesamiento del script, ya que el servidor necesita procesar una gran cantidad de comandos Response.Write.

La solución es crear toda la cadena, desde <table> hasta </table>, y luego escribirla solo una vez usando Response.Write.

Método GetString()

El método GetString() nos permite mostrar toda la cadena utilizando solo una vez Response.Write, incluso sin código do..loop ni pruebas de condiciones para verificar si el conjunto de registros está en EOF.

Sintaxis

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

Para crear una tabla HTML utilizando los datos de un conjunto de registros, solo necesitamos usar tres de los parámetros anteriores (todos son opcionales):

  • coldel - Separador de columnas en HTML
  • rowdel - Separador de filas en HTML
  • nullexpr - HTML utilizado cuando una columna está vacía

Notas:El método GetString() es una característica de ADO 2.0. Puede descargar ADO 2.0 desde la siguiente dirección:http://www.microsoft.com/data/download.htm

En el siguiente ejemplo, utilizaremos el método GetString() para almacenar el conjunto de registros como una cadena:

<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>
<%
cerrar rs
cerrar conn
set rs = Nothing
set conn = Nothing
%>
</body>
</html>

La variable superior str contiene una cadena que representa todas las columnas y filas devueltas por la sentencia SELECT. Entre cada columna aparecerá </td><td> y entre cada fila aparecerá </td></tr><tr><td>. De esta manera, utilizando Response.Write una vez, obtenemos el HTML necesario.