Acelerar ADO con GetString()
Use el método GetString() para acelerar su secuencia de comandos ASP (en lugar de usar múltiples Response.Write).
Multiple Response.Write's
El siguiente ejemplo muestra una forma de 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>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
Para una consulta grande, esto puede ralentizar el tiempo de procesamiento del script, ya que el servidor debe procesar muchos comandos Response.Write.
La solución es crear la cadena completa, desde <table> a </table>, y luego generarla, usando Response.Write solo una vez.
El método GetString()
El método GetString() le permite mostrar la cadena con solo una Response.Write. También elimina el código do...loop y la prueba condicional que comprueba si el conjunto de registros está en EOF.
Sintaxis
str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
Para crear una tabla HTML con datos de un conjunto de registros, solo necesitamos usar tres de los parámetros anteriores (todos los parámetros son opcionales):
- coldel - el HTML para usar como separador de columnas
- rowdel - el HTML para usar como separador de filas
- nullexpr - el HTML a usar si una columna es NULL
Nota: el método GetString() es una característica de ADO 2.0. Puede descargar ADO 2.0 en https://www.microsoft.com/data/download.htm .
En el siguiente ejemplo, usaremos el método GetString() para mantener el conjunto de registros como una cadena:
Ejemplo
<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>
La variable str anterior contiene una cadena de todas las columnas y filas devueltas por la instrucción SQL SELECT. Entre cada columna aparecerá el HTML </td><td>, y entre cada fila aparecerá el HTML </td></tr><tr><td>. Esto producirá el HTML exacto que necesitamos con solo un Response.Write.