En sí, lo que quiero saber es si existe alguna forma para ir páginando con la misma sentencia en SQL y no ir pasando 10 registros del total a la matriz que obtenemos con el método Getrows.
Para explicarme mejor les muestro el código:
Código:
Con las tres sentencias:<%'p es la posicion de comienzo en los registros If Request.Querystring("ref") = "" then p = 0 'Empezamos desde el 1º registro else p = int(Request.Querystring("ref")) end if SQL = "SELECT * FROM tabla ORDER BY fecha" 'abrimos el recordset con tipo de cursor 3 para poder utilizar bookmarks y saber el nº total de registros rs.Open SQL, cnn, 3, 1 total_registros = rs.RecordCount banerror = 0 If total_registros > 0 then rs.Move p inicio = rs.Bookmark mitabla = rs.GetRows(10,inicio) else banerror = 1 end if rs.Close set rs = Nothing cnn.Close set cnn = Nothing
rs.Move p
inicio = rs.Bookmark
mitabla = rs.GetRows(10,inicio)
lo que hacemos es movernos al registro desde el cual vamos a tomar los 10 siguientes. Después ponemos una marca (que sería en el registro de posición p ) y por último utilizamos Getrows para guardar en la matriz mitabla SOLO 10 registros a partir de la posición p.
Hasta aquí la ventaja de hacer la páginación de este modo es que no tenemos que llevar TODOS los registros de la tabla a la matriz, con lo que ahorramos mucha memoria. Pero a lo que voy, es cuanta memoria nos ahorramos si en realidad al abrir el Recordset traemos TODOS los registros y no solo 10 que son los que en realidad vamos a mostrar.
Lo que quiero que me digan es si este código puede optimizarse aún mas o no. Y en el caso que si pueda hacerse ... Como ?
Desde ya muchas gracias.
CABEZOTA ;)
<center><font face=Verdana size=2>Webmaster de [/CODE]<A href="http://www.salirxtucuman.com.ar" target="_blank"><img src="http://www.efrance.fr/salirxtucuman/images/titulo.gif" border=0 align="absmiddle"></a></center>