I have several Delphi programs (XE3), that use a TADOConnection to connect to a MS-SQL Server. I recently checked the connections in the "MS SQL Server Management Studio"'s process list.
On the server the Connection is not closed until I close the program.
Is there a way to close the TADOConnection in a way that really removes the connection on the server without exiting the program?
This is connection pooling; and is a good thing.
But if you really want to hurt performance, you can opt-out of connection pooling features by adding the request to your connection string:
Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDataBase;
User ID=myUsername;Password=correct horse battery stapler;OLE DB Services=-2;
These OLE DB Services
options are documented on MSDN:
Pooling in the Microsoft Data Access Components (archive)
OLE DB Services Services enabled =============== ================================================== -1 All services (the default) -2 All services except pooling -4 All services except pooling and auto-enlistment -5 All services except client cursor -6 All services except client cursor and pooling 0 No services