Heinzi Tuberkel
Heinzi Tuberkel

Reputation: 103

TADOConnection.Close - connection still active on MS-SQL server

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?

Upvotes: 0

Views: 924

Answers (2)

CharlieB
CharlieB

Reputation: 301

The connection will close if you have closed all the objects using the connection before you try to close the connection itself.

Upvotes: 0

Ian Boyd
Ian Boyd

Reputation: 256741

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

Upvotes: 2

Related Questions