To read the article online, visit http://www.4GuysFromRolla.com/webtech/tips/t021000-1.shtml

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!

Return to user tips...


Article Information
Article Title: User Tips: Forget to Set your Recordset/Connection Objects Equal to Nothing?
Article Author: Tim H.
Article URL: http://www.4GuysFromRolla.com/webtech/tips/t021000-1.shtml


Copyright 2017 QuinStreet Inc. All Rights Reserved.
Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers