Some colleagues and I are debating the absolute necessity of executing the
Close() method on a recordset once you're done with it.

I have always heard it recommended that you should always execute the
Close() method, and that failure to do so could result in the recordset
remaining open and never closed and unloaded until it falls out of scope.

But my argument is that there is a handy word "could" in the above
statement. I have perused documentation and web sites and I can see no
specific evidence of this happening except:

a) the garbage collector is too slow to keep up (i.e. on a multi-threaded
web site hosting millions of people at once), or
b) the recordset is passed into another scope context, such as the Session
object.

I have NEVER heard of this problem outside of these two criteria. Has anyone
else???

My position is that if you only have a few hundred users pounding on a
connection pool at once, and you've got a local subroutine going on, and you
aren't putting the Recordset or its Connection anywhere else (a global or
static collection), even if it is a healthy, good idea to Close() it and
mark it for destruction, it's nonetheless 100% safe to just forget about it
and let the garbage collector handle it.

Why specifically am I wrong? Is there a known defect within ADO that proves
me wrong? What is the KB #?

Thanks,
Jon