Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic ASP无法输出大量记录_Asp Classic - Fatal编程技术网

Asp classic ASP无法输出大量记录

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页面,它将从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呈现内容之前,下载完整的表格需要很长时间。分页或限制记录集并不是问题本身所表明的答案。