conn是一个全局变量,在声明类的时候可能conn已存在,用这句先释放!因为类的实例化你又不只用一个!!可能好几个实例啊! 也许可以这样: If conn Is Nothing Then Set conn = New ADODB.Connection Else Set conn = Nothing Set conn = New ADODB.Connection End If
问题是,如果 conn 是一个当前的连接,正在连着 set conn=nothing 并不会关闭这个连接呀,只要关闭连接后才能释放。所以 set conn=nothing 我不知有何作用?
9494.。。 如果在此时这个Conn真有可能正在使用 在这里又释放内存。。重新定义。。-_-!
LZ,我把你这个问题再延伸下, set conn=nothing和conn.close有区别吗? 一个很基础的问题,但想看看究竟有多少同仁可以说出这其中的实质区别!
这句是确保conn不存在 然后在执行下面的代码
这个示例中,就是在类中直接操作一个全局变量.
这种在类中直接操作公共全局变量的方法,虽然是充许的.但是教科书上说,这是不规范的.
所以在这里再问问,这样做是真的不规范吗?我贴的代码,可是一个比较经典的示例呀,估计好多人都看过这个示例.
也许可以这样: If conn Is Nothing Then
Set conn = New ADODB.Connection
Else
Set conn = Nothing
Set conn = New ADODB.Connection
End If
set conn=nothing 并不会关闭这个连接呀,只要关闭连接后才能释放。所以
set conn=nothing 我不知有何作用?
9494.。。
如果在此时这个Conn真有可能正在使用
在这里又释放内存。。重新定义。。-_-!
set conn=nothing和conn.close有区别吗?
一个很基础的问题,但想看看究竟有多少同仁可以说出这其中的实质区别!
用抄的,,那并不可取,开源<>复制,粘贴代码!!!!!
其实 set conn=nothing 在conn关闭之后,系统会自动进行的.只不过手动的set nothing更好些.让其在最短的时间内释放内存空间.
我说的有问题吗?
conn.Close之后还可以conn.open
但Set conn=Nothing之后就不可以conn.open 了,要 set conn=new adodb.connection
COM对象是引用计数为0时自己释放的,调用者无权释放其内存
close以后系统在一定时间类也会自动释放变量的内存空间.