主题:ado的记录集使用之后的资源释放问题
yiceyang
[专家分:460] 发布于 2008-01-26 22:28:00
ado打开并使用记录集之后用close关闭记录集
之后是否需要在用类似asp里面的Set Rs=nothing的语句释放资源?
例如
set rs=new recordset
rs.open .....
rs.add
..
..
..
rs.update
rs.close
[color=800000]set rs=nothing '这一句需不需要? 是不是就是该这样写?[/color]
回复列表 (共8个回复)
沙发
yanxinggaotian [专家分:1140] 发布于 2008-01-27 07:46:00
好像 set rs = nothing 和 rs.close作用相同。
板凳
bcahzvip [专家分:6040] 发布于 2008-01-27 09:48:00
set rs = nothing
比较好!~
3 楼
yiceyang [专家分:460] 发布于 2008-01-27 10:08:00
楼上的两位大哥
rs.close
set rs=nothing
这两句是否需要同时出现呢?
4 楼
bcahzvip [专家分:6040] 发布于 2008-01-28 03:38:00
rs.close
set rs=nothing
可以,不过要有次序!~为什么,调试后就知道了!~
5 楼
华山论剑 [专家分:5310] 发布于 2008-01-29 13:37:00
两句都要,close只是关闭数据集对象,但是rs本身是个Object型的对象,很占内存的,Set rs = Nothing就把它所占用的内存释放了。
6 楼
bcahzvip [专家分:6040] 发布于 2008-01-29 15:35:00
ToT 感谢我们的析构函数!~
7 楼
华山论剑 [专家分:5310] 发布于 2008-01-30 10:00:00
楼上兄弟的意思是Set xxx = Nothing相当于C++的析构函数?从C++角度来说,这句相当于delete rs,然后析构函数确实会被调用!
8 楼
家人 [专家分:6760] 发布于 2008-01-30 11:57:00
在正常操作中rs.close加上set rs=nothing应该是比较规范的代码
当数据操作中出现错误时,rs.close有可能不能被执行,这个时候set rs=nothing应该是十分必要的
我一般用如下结构:
on error goto err_app:
rs.open.......
'..........
rs.close
err_exit:
set rs=nothing
exit sub
err_app:
msgbox err.description
resume err_exit
我来回复