经典ASP检索大量数据

时间:2010-06-22 09:48:43

标签: sql-server asp-classic

我有一个超过148,000行的表,我设法通过执行以下操作来显示:

<%response.Buffer=false%> 

然而,这远非理想,因为它需要在服务器上完成并且需要很长时间。有没有更好的方法呢?

非常感谢, 乔尔

2 个答案:

答案 0 :(得分:4)

虽然我同意其他人在一页上显示148.000行是疯狂的,但我只是想提请你注意如何输出数据。

由于您没有指定任何代码,我假设您只是循环遍历记录集以显示记录,如下所示:

Do While Not RS.EOF
//Output
RS.MoveNext
Loop

这是处理经典ASP中数据的一种非常低效的方式,因为每次读取字段(即RS(“名称”))时,您都在向数据库发出请求,同样适用于每个MoveNext和每个EOF测试。相反,您应该使用GetRows将记录集中的所有元素放入数组中,然后继续关闭与数据库的连接。

有一篇关于如何使用GetRows here

的好文章

除了文章:

MyArray = rsMyRecordSet.GetRows()

//Close DB connection

Ubound(MyArray,1) 'Returns the Number of Columns
Ubound(MyArray,2) 'Returns the Number of Rows
For lnLoopCounter = 0 To Ubound(MyArray,2)
    Response.Write MyArray(0, lnLoopCounter) _
      & ", " _
      & MyArray(1, lnLoopCounter) _
      & "<BR>" & vbNewLine
Next

答案 1 :(得分:0)

我知道这是一篇较老的帖子,但我只是觉得我会让任何遇到这种情况的人都为此目的写了一个服务器端脚本。请查看:

http://www.webmastersean.com/2012/11/datatables-classic-asp-server-side.html