I think the important question is how do you want the interface to your COM object to be? How do you want to use it? If you don't mind creating a connection before you can use it, (or if that's more appropriate for the function of the COM object) then by all means pass it a connection. As far as overhead, if you're going to pass a connection to every COM object that gets created then there's no real difference at the DB level because each connection will have to query the DB just like each instance of the COM object would. However, if the COM object is running on the server and instances are created on the client, it's probably better to let the client create the connection and save on server recources.
Hope that makes sense... :/
~Mike
Any man willing to sacrifice liberty for security deserves neither liberty nor security.
-Ben Franklin