ADO Acelerar scripts con GetString()
Use el método GetString() para acelerar sus scripts ASP (en lugar de varias líneas de Response.Write).
Response.Write de varias líneas
El siguiente ejemplo demuestra una forma de mostrar una consulta de base de datos en una tabla 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>
Para una consulta grande, hacer esto aumenta el tiempo de procesamiento del script, porque el servidor necesita procesar una gran cantidad de comandos Response.Write.
La solución es crear toda la cadena, de `<table>` a `</table>`, y luego generarla, usando Response.Write solo una vez.
El método GetString()
El método GetString() nos permite mostrar todas las cadenas usando solo una Response.Write. Tampoco necesita código do..loop ni pruebas condicionales para comprobar si el recordset está en EOF.
Sintaxis
Para crear una tabla HTML con datos del recordset, solo necesitamos usar tres de los parámetros anteriores (todos los parámetros son opcionales):
- coldel - HTML utilizado como separador de columnas
- rowdel - HTML utilizado como separador de filas
- nullexpr - HTML utilizado cuando la columna está vacía
Nota: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, usaremos el método GetString() para almacenar el recordset como una cadena:
Ejemplo
<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>
La variable str anterior contiene una cadena de todas las columnas y filas devueltas por la sentencia SELECT. Entre cada columna aparece `</td><td>`, y entre cada fila aparece `</td></tr><tr><td>`. Así, usando solo una Response.Write, obtenemos el HTML necesario.
Otras extensiones