注册 登录
编程论坛 ASP技术论坛

请问下这两个有什么不一样?

lele2007 发布于 2008-06-19 23:03, 823 次点击
<%
dim rs_ly,sql_ly
set rs_ly=server.createobject("adodb.recordset")
sql_ly="select top 9 * from guestbook order by g_id desc"
rs_ly.open sql_ly,lele,1,1
if rs_ly.bof and rs_ly.eof then
response.write "<tr class='log'><td colspan='2' align='left'>暂时没有留言或留言审核中……</td></tr>"
else
do while not rs_ly.eof
if rs_ly("g_yesorno")=true then
%>
<tr align="left" class="log">
<td width="226" style="border-bottom:dashed 1px #CCCCCC"><a href="gshow.asp?g_id=<%=rs_ly("g_id")%>"><%=title_del(rs_ly("g_title"),18,"...")%></a><span class="lele">[<%=ghref(rs_ly("g_user"),"匪名")%>]</span></td>
<td width="85"style="border-bottom:dashed 1px #CCCCCC"><%=year(rs_ly("g_time"))%>-<%=month(rs_ly("g_time"))%>-<%=day(rs_ly("g_time"))%></td>
</tr>
<%
end if
rs_ly.movenext
loop
end if
%>
--------------------------------------------------------------------------
我用这种方法实现我了想要的效果。就是用:if rs_ly("g_yesorno")=true then判断数据有没有审核。审核则用一行来显示数据。(这个方法可以实现)

<%
dim rs_ly,sql_ly
set rs_ly=server.createobject("adodb.recordset")
sql_ly="select top 9 * from guestbook order by g_id desc"
rs_ly.open sql_ly,lele,1,1
if rs_ly.bof and rs_ly.eof then
response.write "<tr class='log'><td colspan='2' align='left'>暂时没有留言或留言审核中……</td></tr>"
else
do while not rs_ly.eof
if rs_ly("g_yesorno")=true then
%>
<tr align="left" class="log">
<td width="226" style="border-bottom:dashed 1px #CCCCCC"><a href="gshow.asp?g_id=<%=rs_ly("g_id")%>"><%=title_del(rs_ly("g_title"),18,"...")%></a><span class="lele">[<%=ghref(rs_ly("g_user"),"匪名")%>]</span></td>
<td width="85"style="border-bottom:dashed 1px #CCCCCC"><%=year(rs_ly("g_time"))%>-<%=month(rs_ly("g_time"))%>-<%=day(rs_ly("g_time"))%></td>
</tr>
<%
else
rs_ly.movenext
end if
loop
end if
%>
----------------------------------------------------------
可是这个方法不可以实现,所以不太明白有什么不一样?都是用一个if来判断。只是
<%
else
rs_ly.movenext
end if
loop
end if
%>
这里不同!有了个else。就出现了错误。请问这是什么错的?
--------------------------------------------------------------------------------
错误提示:
Response 对象 错误 'ASP 0251 : 80004005'
超过响应缓冲区限制
/index.asp,行 0
此 ASP 页的执行造成响应缓冲区超过其配置限制。
2 回复
#2
yms1232008-06-20 00:10
do while not rs_ly.eof
if rs_ly("g_yesorno")=true then
%>
<tr align="left" class="log">
<td width="226" style="border-bottom:dashed 1px #CCCCCC"><a href="gshow.asp?g_id=<%=rs_ly("g_id")%>"><%=title_del(rs_ly("g_title"),18,"...")%></a><span class="lele">[<%=ghref(rs_ly("g_user"),"匪名")%>]</span></td>
<td width="85"style="border-bottom:dashed 1px #CCCCCC"><%=year(rs_ly("g_time"))%>-<%=month(rs_ly("g_time"))%>-<%=day(rs_ly("g_time"))%></td>
</tr>
<%
else
rs_ly.movenext
end if
loop
很明显楼主这个循环肯定会导致那个错误
因为符合if条件就会不执行rs_ly.movenext
而这时等于还是这条数据,这条数据符合if条件依然不执行rs_ly.movenext
所以这就造成了无限循环导致了楼主的错误。
do while not rs_ly.eof
if rs_ly("g_yesorno")=true then
%>
<tr align="left" class="log">
<td width="226" style="border-bottom:dashed 1px #CCCCCC"><a href="gshow.asp?g_id=<%=rs_ly("g_id")%>"><%=title_del(rs_ly("g_title"),18,"...")%></a><span class="lele">[<%=ghref(rs_ly("g_user"),"匪名")%>]</span></td>
<td width="85"style="border-bottom:dashed 1px #CCCCCC"><%=year(rs_ly("g_time"))%>-<%=month(rs_ly("g_time"))%>-<%=day(rs_ly("g_time"))%></td>
</tr>
<%
end if
rs_ly.movenext
loop
因此最好这样写
#3
lele20072008-06-20 17:39
哦!恍然大悟!看了版主的解答终于明白了! 不过别笑话我,呵呵!毕竟还是学习中……
谢谢版!!!
1