When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles
Related Web Technologies
User Tips!
Coding Tips

Sample Chapters
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Stump the SQL Guru!
XML Info
Author an Article
Print this page.
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
 Set rs = nothing
End if
If IsObject(cnn) then
 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
		end if
	end if
	'If it's a connection and open, close it
	if TypeName(cn) = "Connection" then
		if cn.state <> adStateClosed then
		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...

ASP.NET [1.x] [2.0] | ASPFAQs.com | Advertise | Feedback | Author an Article