User Tips: Forget to Set your Recordset/Connection Objects Equal to Nothing?
By Tim H.
This piece code has been very helpful to me. I use it at the end of all my
pages, regardless whether I open a recordset or not. It cleans up, if you
forget. I check for rs and cnn, since that is what I usually
name my Recordset and Connection objects. Replace these two variable names with whatever
your standard Recordset/Connection object names are.
I recommend putting the below code snippet into an include file and including it
in all of your ASP pages... to learn more about includes, check out:
The Low-down on Includes.
Note: this will cause in error if, earlier in your script, you closed your
Recordset or Connection object but did not explicitly free it by Setting it to
Nothing
Here's the code!
<%
On Error Resume Next
If IsObject(rs) then
rs.close
Set rs = nothing
End if
If IsObject(cnn) then
cnn.close
Set cnn = nothing
End if
%>
|
Alert reader Stephen Vakil suggested that the following code snippet could also be used:
sub destroyAll
'If it's a recordset and open, close it
if TypeName(rs) = "Recordset" then
if rs.state <> adStateClosed then
rs.close
end if
end if
'If it's a connection and open, close it
if TypeName(cn) = "Connection" then
if cn.state <> adStateClosed then
cn.close
end if
end if
set cm = nothing 'Dereference Command
set pm = nothing 'Dereference Paramter
set rs = nothing 'Dereference Recordset
set cn = nothing 'Dereference Connection
end sub
|
Happy Programming!