ASP循环代码中rs.close和set rs=Nothing的用法

下面是举个例子,我想问下,我在循环里打开了一个rs1的记录集,如果想使用rs1.close和set rs1=Nothing的时候,是放在循环里面还是等循环全部结束了之后再使用了,另外rs1.close和set rs1=Nothing要同时使用效果才好吗,或者有没更好的写法呀,希望各位有经验的大侠不吝赐教。
rs1.close和set rs1=Nothing<%for i=1 to rs.pagesize%>
<td><%=rs("ddbh")%></td><!--显示订单编号 -->
sql1=“select name from ywy where ywybh='"&rs("ywybh")&"'”
set rs1=conn.execute(sql1)
<td><%=rs1("ywyname")%></td><!--通过rs获取到业务员编号,然后到业务员表里查找获取到业务员的姓名-->
<td>......</td>
<%
rs.MoveNext
if rs.eof then exit for
next
%>
怎么一个说在循环里结束,一个说在循环外结束啊,到底听哪位的啊
我是说的rs1.close和set rs1=Nothing,不是标题的那个,到底该放到哪才是正确的啊
这两行代码需要放在循环体外面才比较直观,放在循环体枝芹做里的话,这就和循环体的判断首嫌有关了。
rs.close就是recordset关闭,也就是关闭这个查询结果集。
set rs=nothing就是释放这个结果集占用的空间。
一般都需要用猛衡到这个操作。
在循环结束以后才能写!
这是为了关闭上面定义的数据记录集,这主是起释放数据库记录集的作用,当一个页面只有一个记录集的时候不写看不到什么问题,只是会影响数据的访问效率,但是当一个页面有多个记录集,比如你定义仔者的RS、RS1.。。。桐戚链等等如果,有局孙嵌套使用的时候如果内层不关闭你的程序就会报错了!
至于你所说的更好的办法,我建议是写程序代码的时候尤其有记录集嵌套的时候层次一定要分清楚,从里面向外逐层关闭,如果没有嵌套只是按步骤多次使用记录集,可以使用全局定义的方面缩减代码量!
希望对你有所帮助!
因为在循环里面打开纯棚的,所以你必须在循环里面结束掉RS1,所渗陵以那两句话还是写在循环里面!另外,也可以直接用RS1.CLOSE的,set rs1=Nothing只是释放内存,做喊则可以在确定不再需要RS1以后才使用!
当然是在循环外使用 rs1.close和set rs1=Nothing
思路应该是rs是一个记录集合,只有把记录集遍历全部遍历出来了,才能把信判闹滑罩记录集关闭然后释放内冲贺存。。。。如果在循环遍历的时候使用那数据会不完整而且会出异常
set rs1=Server.CreateObject("Adodb.Recordset") '创建一个rs1
while not rs.eof

sql1=“select name from ywy where ywybh='轿肢"&rs("ywybh")&"'”
rs1.open sql1,conn,1,1
....
rs1.close

rs.movenext
wend
set rs1=nothing '闭陪世rs1没用了清理

文字东西就不说了。直接乱慧上代码。