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<%
set con = Server.CreateObject("ADODB.Connection")
ConnString = "Provider=SQLNCLI10;Server=SERVIDOR;Database=*****;Uid=******;Pwd=*****;Persist security info=true;"
Con.CommandTimeout = 0
con.Open ConnString
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "Select * from Tabla", Con
%>
<table>
<%
Cnt=1
while not rs.EOF
%><tr><td><%=Cnt%></td>
<%
For i=0 To rs.Fields.Count-1
%>
<td><%=rs.Fields(i).value%></td>
<%
Next
%></tr><%
if Cnt MOD 100 = 0 Then
%></table><table><%
Response.flush
end if
Cnt = cnt + 1
rs.MoveNext
Wend
rs.Close
set rs = nothing
%>
</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