Asp classic ASP无法输出大量记录
我有一个ASP页面,它将从DB表中查询记录并进行一些处理,然后在浏览器中呈现HTML表。我的表中有16000多行。当我使用select top 2500 StudId,StudName from StudentsTbl运行程序时,它工作正常。但当我使用select“StudId,StudName from StudentsTbl”时,它不会显示任何输出。我在while循环中每50条记录后使用Response.flush()。有人能告诉我如何解决这个问题吗?提前谢谢Asp classic ASP无法输出大量记录,asp-classic,Asp Classic,我有一个ASP页面,它将从DB表中查询记录并进行一些处理,然后在浏览器中呈现HTML表。我的表中有16000多行。当我使用select top 2500 StudId,StudName from StudentsTbl运行程序时,它工作正常。但当我使用select“StudId,StudName from StudentsTbl”时,它不会显示任何输出。我在while循环中每50条记录后使用Response.flush()。有人能告诉我如何解决这个问题吗?提前谢谢 实际上,我会通过添加响应从这
实际上,我会通过添加响应从这个ASP页面创建一个Excel文件。ContentType=“application/vnd.ms Excel”这就是我需要一次性生成所有数据的原因。根据您对问题的描述,我打赌您正在使用IE作为测试浏览器。Response.Flush()正在输出HTML,但它不会立即显示,因为IE不知道如何以增量方式呈现表。相反,IE会等待整个表输出,然后再将其绘制到浏览器窗口。你的剧本不是问题所在
话虽如此,我想指出你的设计存在根本缺陷。从可用性的角度考虑您的脚本:没有合理的理由说明您需要同时输出16000行数据,或者使用TOP子句将记录集限制在前1000行。尝试将其作为表格输出到浏览器-我打赌您会遇到“脚本超时”错误
最好的办法是延长超时时间间隔。您可以在脚本开始时使用一些代码,也可以作为全局服务器设置。我推荐前者。Server.ScriptTimeout=393 把它放在页面顶部(我只是随机选择一个高数字)。我假设您正在从IIS获得超时。默认值为90秒 去掉response.flush,它只会使速度变慢,因为服务器必须每X毫秒向客户端输出一次。而是缓冲整个页面(在IIS中应设置为默认值以提高性能)
如果仍然失败,错误是什么?可能您的数据库速度慢。您现在正在使用application/vnd.ms-excel吗?我同意最可能的解释是,在IE呈现内容之前,下载完整的表格需要很长时间。分页或限制记录集并不是问题本身所表明的答案。