Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/10/2010, 16:46
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 9 meses
Puntos: 146
Respuesta: Capacidad maxima en ciclo FOR.

Ok, pensé en que se trataba de un error generado al llenarse el buffer, entonces con un .flush se arreglaba.

Hice este código para probar la idea:


Código ASP:
Ver original
  1. <%
  2. set con = Server.CreateObject("ADODB.Connection")
  3. ConnString = "Provider=SQLNCLI10;Server=SERVIDOR;Database=*****;Uid=******;Pwd=*****;Persist security info=true;"
  4. Con.CommandTimeout  = 0
  5. con.Open  ConnString
  6. set rs = Server.CreateObject("ADODB.Recordset")
  7. rs.Open "Select * from Tabla", Con
  8. %>
  9. <table>
  10. <%
  11. Cnt=1
  12. while not rs.EOF
  13.   %><tr><td><%=Cnt%></td>
  14.     <%
  15.     For i=0 To rs.Fields.Count-1
  16.        %>
  17.          <td><%=rs.Fields(i).value%></td>
  18.          <%
  19.     Next
  20.     %></tr><%
  21.     if Cnt MOD 100 = 0 Then
  22.        %></table><table><%
  23.        Response.flush
  24.     end if
  25.     Cnt = cnt + 1
  26.   rs.MoveNext
  27. Wend
  28. rs.Close
  29. set rs = nothing
  30. %>
  31. </table>

y efectivamente eso fue, la tabla a la que accedí tiene alrededor del medio millon de registros (mal ejemplo, se tardó bastantito) y los mostró todos, de 100 en 100 claro esta (también mal ejemplo, debí poner 1000). Si tu no ocupas una tabla puedes colocar el .flush al término del FOR, pero cada registro se estará mandando HTML al cliente, puedes mandarlo cada 1000 registros, creo que es un buen número, pero depende de que tan frecuente quieras que el cliente vaya viendo datos nuevos.

Pero en lo personal creo que esta mal esa idea de presentarle tantos datos en el browser al usuario, digo, ¿de qué le sirve ver más de 14000 registros en la pantalla?, no puede hacer nada con ellos, debería ser algo más depurado y filtrado.

saludos