<%
set rs1=Server.CreateObject( "ADODB.Recordset ")
sql= "Select * from baogao "
rs1.open sql,conn,1,1
while not rs1.eof
response.write rs1( "bgname ")
wend
%> 出错
Response 对象 错误 'ASP 0251 : 80004005 '
超过响应缓冲区限制
/web/bao.asp,行 0
此 ASP 页的执行造成响应缓冲区超过其配置限制。
而if not.rs1.eof 只打印了一条记录。为啥呢
------解决方案--------------------
晕,只要有记录,rs1.eof恒为true,所以一直循环,直到超时或崩溃。
response.write 后,要把控制指针向下移动
rs1.movenext
------解决方案--------------------
<%
set rs1=Server.CreateObject( "ADODB.Recordset ")
sql= "Select * from baogao "
rs1.open sql,conn,1,1
do while not rs1.eof
response.write rs1( "bgname ")
rs1.movenext
loop
%>
------解决方案--------------------
都是一样的,只不过执行顺序不一样.
do-while 和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。