ASP循环代码中rs.close和set rs=Nothing的用法
下面是举个例子,我想问下,我在循环里打开了一个rs1的记录集,如果想使用rs1.close和setrs1=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,不是标题的那个,到底该放到哪才是正确的啊 展开
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,不是标题的那个,到底该放到哪才是正确的啊 展开
7个回答
展开全部
在循环结束以后才能写!
这是为了关闭上面定义的数据记录集,这主是起释放数据库记录集的作用,当一个页面只有一个记录集的时候不写看不到什么问题,只是会影响数据的访问效率,但是当一个页面有多个记录集,比如你定义的RS、RS1.。。。等等如果,有嵌套使用的时候如果内层不关闭你的程序就会报错了!
至于你所说的更好的办法,我建议是写程序代码的时候尤其有记录集嵌套的时候层次一定要分清楚,从里面向外逐层关闭,如果没有嵌套只是按步骤多次使用记录集,可以使用全局定义的方面缩减代码量!
希望对你有所帮助!
这是为了关闭上面定义的数据记录集,这主是起释放数据库记录集的作用,当一个页面只有一个记录集的时候不写看不到什么问题,只是会影响数据的访问效率,但是当一个页面有多个记录集,比如你定义的RS、RS1.。。。等等如果,有嵌套使用的时候如果内层不关闭你的程序就会报错了!
至于你所说的更好的办法,我建议是写程序代码的时候尤其有记录集嵌套的时候层次一定要分清楚,从里面向外逐层关闭,如果没有嵌套只是按步骤多次使用记录集,可以使用全局定义的方面缩减代码量!
希望对你有所帮助!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为在循环里面打开的,所以你必须在循环里面结束掉RS1,所以那两句话还是写在循环里面!另外,也可以直接用RS1.CLOSE的,set rs1=Nothing只是释放内存,可以在确定不再需要RS1以后才使用!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然是在循环外使用 rs1.close和set rs1=Nothing
思路应该是rs是一个记录集合,只有把记录集遍历全部遍历出来了,才能把记录集关闭然后释放内存。。。。如果在循环遍历的时候使用那数据会不完整而且会出异常
思路应该是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没用了清理
文字东西就不说了。直接上代码。
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没用了清理
文字东西就不说了。直接上代码。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询