当记录集上的循环继续运行而记录总数减少时
问题描述:
IO在我的asp经典页面中出现了一个真正奇怪的问题。我正在为员工制定一个休息日程表。当我测试它时,它似乎工作正常。尽管有了另外一种选择,我可以一周来回回顾,当我回到3周时,循环不断循环到一个单独的记录中。当记录集上的循环继续运行而记录总数减少时
所以我想通过在SQL执行后对记录集进行计数来检查问题出在哪里。
由于某些原因,do while循环保持循环。我做了一个打印计数,看看它找到了多少条记录,现在它已经在508 000!
所以在我的T-SQL服务器(2012年),我做了完全相同的查询,在这里它只是导致953个记录...
所以很明显tghere去一些错误的循环。
这里是我使用的代码:
strSQL = "SELECT * FROM [qrySnipperKalender_B] WHERE [snipperdag] >= "& szStart &" AND [snipperdag]<= "& szEnd &" ORDER BY [FunctieGroep], [Relatienaam], [Datum] ASC"
response.write(strSQL & "<br> <br>")
set rst=con_sql.execute(strSQL)
CountCheck = 0
Do until rst.EOF or rst.BOF
response.write("Count is: " & CountCheck & "<br>")
CountCheck = CountCheck + 1
Loop
response.write("RST count :" & CountCheck)
response.end
到Response.End的和回复于RST数从来没有击中,它只是不断循环,使页面非常慢。
的回复于SQL结果:SELECT * FROM [qrySnipperKalender_B] WHERE [snipperdag] >= 15281 AND [snipperdag]<= 15355 ORDER BY [FunctieGroep], [Relatienaam], [Datum] ASC
当我运行在它导致953个记录(如它应该)在SQL服务器此查询。
所以问题是,为什么这个循环打破/保持运行?
我已经试图用rst.BOF修改循环(首先我只有EOF),但这没有任何作用。我也尝试在循环中使用IF条件,如果它碰到EOF,则退出循环,但这也不起作用。
你没有做任何事情,以推进到一个新的记录。 –