Los últimos tutoriales de desarrollo web
 

ADO Speed ​​Up Con GetString ()


Usar la GetString() método para acelerar su secuencia de comandos ASP (en lugar de utilizar múltiples de Response.Write).


Múltiple de Response.Write

El siguiente ejemplo muestra una manera de cómo 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 de gran tamaño, esto puede ralentizar el tiempo de proceso de la escritura, ya que muchos de los comandos Response.Write deben ser procesados ​​por el servidor.

La solución es hacer que toda la cadena creada, desde <table> a </ table>, y luego la salida que - mediante Response.Write sólo una vez.


El GetString() Método

El GetString() método le permite mostrar la cadena con una sola Response.Write. También elimina el do ... código de bucle 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 los datos de un conjunto de registros, sólo tenemos que utilizar tres de los parámetros anteriores (all parameters are optional) :

  • coldel - el código HTML para utilizar como separador de columna
  • rowdel - el código HTML para utilizar como separador de fila
  • nullexpr - el código HTML que se utilizará si una columna es NULL

Note: El GetString() método es una característica ADO 2.0. Puede descargar ADO 2.0 en http://www.microsoft.com/data/download.htm .

En el siguiente ejemplo vamos a utilizar el GetString() método 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>","&nbsp;")
%>

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

Ver ejemplo »

La variable str anterior contiene una cadena de todas las columnas y filas devueltas por la instrucción SQL SELECT. Entre cada columna de HTML </td><td> aparecerá, y entre cada fila, el código HTML </td></tr><tr><td> aparecerá. Esto producirá el HTML exacto que necesitamos con una sola Response.Write.