检验科疑难病例有哪些:asp 入门级问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 19:27:49
<!--#include file="../dtk/conn.asp"-->
<%
exec="select * from kkk"
set rs=server.CreateObject("adodb.recordset")
rs.open exec,conn,1,1
%>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<%do while not rs.eof%><tr>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>
<td><%rs.close%></td>
</tr>
<%
rs.movenext
loop
%>
</table>

<%rs.close
set rs=nothing
conn.close
set conn=nothing
%>
只要我一测试这个代码。在进程里就会出现一个dllhost.exe进程
内存直线上升。。直到死机
我觉的可能是一个死循环
不知道要怎么改
这个是conn.asp
<%
dim conn,connstr
on error resume next '尝试连数据库,一直到超时,但可以加强SQL注入过滤
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("..\dtk\cs.mdb")
'connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
%>

问题出在rs.close不能在循环里面,
按这样的话第一次循环rs就关闭了,当然rs还没到最底,所以rs.eof就一直是false,永远不可能为true,循环无法跳出,就死机了.

把这个删掉就可以了:
<td><%rs.close%></td>

的确死循环了
<%do while not rs.eof%><tr>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>
<td><%rs.close%></td>
</tr>
<%
rs.movenext
loop
%>
改成这样
<%do while not rs.eof%><tr>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>

</tr>
<%
rs.movenext
loop
rs.close
%>

<%do while rs.eof%><tr>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>
<td><%=rs("jsykt")%></td>
<td><%=rs("jsyktjg")%></td>

</tr>
<%
rs.movenext
loop
rs.close
%>

--------------------------
<%do while not rs.eof%> 吧not 去掉 这里是表示 如果没有数据就一直循环

--------------------
http://www.aofan.cn/