Utilizar GetRows()


http://www.asptutor.com

Utilizar GetRows()

  Colaboración enviada por Juan Simon

 

Utilizar GetRows()
 
GetRows es una de las mejores y más utiles propiedades de un recordset en asp.
La gente no suele utilizarlo e incluso a mi me han llegado a decir que no sirve de nada y eso simplemente es por que no lo conocen.
Para poneros un ejemplo de la rapidez en grandes consultas os dire que una funcion recursiva que hice para mi empresa tardaba cerca de 1:30 minutos en devolver todos los resultados, con GetRows me tarda 2 segundos.

En un bucle donde se imprimien los datos de un RecordSet se pueden llegar a hacer cientos de llamadas al servidor y mantiendo el objeto y la conexion abiertas.

Una peticion por cada RS.movenext, otra por cada RS("campo") y otra por cada RS.EOF.

Con getrows() solo haces una y luego ya se trabaja con un array.
 
 
Ejemplo de codigo con GetRows() (leer comentarios de entre medio):
 

dim RS, sql
dim array_resultados, n_resultado
dim nombre, apellidos
 
sql = "SELECT nombre,apellidos FROM usuarios"
'Lo correcto es indicar todos los campos que se quieren extraer en la consulta para luego 'sacarlos correctamente del 'array. Si se pone un asterisco y luego se cambia el orden de los 'campos en la tabla desde asistente de base de 'datos, habra que cambiar el orden de 'extraccion de los datos en el array.
 
set rs = server.CreateObject("adodb.recordset")
rs.open sql, conexion
 
if not (rs.EOF and rs.BOF) then
     array_resultados = rs.GetRows()
end if
 
rs.Close
set rs = nothing
 
'Ubound(array_resultado,2) el dos indica el numero de filas, el 1 indica el numero de columnas
'array_resultados(x,y) el x indica la columna y la y las filas
 
if(isarray(array_resultados))then
      for n_resultado = Lbound(array_resultados,2) to Ubound(array_resultados,2)
          nombre = trim(array_resultados(0,n_resultado))
          apellidos = trim(array_resultados(1,n_resultado)) 
          Response.Write("" & nombre & " - " & apellido)
      next
end if
 

 

Espero que os sirva de ayuda.
  
 Y recordad de con esto vuestra pagina se convierte en más rápida y gasta menos recursos.