当前位置:首页 >> 营销百科 >> 详情

asp do while 死循环导致服务器网站打开速度缓慢,并且报错

发布时间:2014-07-21   浏览次数:91次   作者:未知    标签:郑州seo 郑州seo推广 郑州网站推广
今天有个客户说是服务器有问题,我就帮他看了一下,琢磨半天不知道什么地方的问题。后来排除法,找到了最后一段代码,去掉一切正常,有这个代码就不行了:

代码如下:

[code]
<%do while not rsdq.eof
rsdqlink=rsdq("weblink")
%>
<%if rsdqlink<>"" then%>" target="_blank"><%else%>"><%end if%>" width="22" height="22" /><%=left(rsdq("classname"),15)%>

<%
rsdq.movenext
loop
rsdq.close
set rsdq=nothing %>
[/code]

我这一看,尼玛,这不是死循环吗?假如说,数据库中没有这样的记录,那不就出问题了?

后来看了一下,决定给do...while 加一个判断:

[code]
If rsdq.Eof And rsdq.Bof Then
Else
原来的代码
end if
[/code]

这样,就变成了 :

[code]
<%
If rsdq.Eof And rsdq.Bof Then
Else
do while not rsdq.eof
rsdqlink=rsdq("weblink")
%>
<%if rsdqlink<>"" then%>" target="_blank"><%else%>"><%end if%>" width="22" height="22" /><%=left(rsdq("classname"),15)%>

<%
rsdq.movenext
loop
rsdq.close
set rsdq=nothing
end if
%>
[/code]


轻松搞定!

下次遇到这样的死循环,一定不会再用这么长时间了。其实这样的最为难人,如果数据库中不是空的,网站就正常,如果这个表是空的,就出现死循环,坑爹啊!

写这个程序的人,我鄙视你!

----------------------------
悲催啊,最后发现不是这个问题,是64位的win2008服务器程序池问题。解决方法如下:

[backcolor=rgb(253, 254, 255)]如果你使用64位系统,那可能如上办法也解决不了,原因是64位系统没有提供64位ACCESS连接的驱动,把网站对应的应用程序池中项目的“启用32位应用程序”置为“ture”。 这样就可以了。[/backcolor]
[backcolor=rgb(253, 254, 255)][/backcolor]
搞定