TADOConnection.Close - MS-SQL服务器上的连接仍然有效

时间:2018-02-09 12:02:07

标签: sql-server delphi ado

我有几个Delphi程序(XE3),它们使用TADOConnection连接到MS-SQL Server。 我最近检查了“MS SQL Server Management Studio”进程列表中的连接。

  • 程序启动时,连接处于非活动状态,没有连接 服务器的进程列表。
  • 当我打开连接时,它显示在进程列表中 - 如 预期。
  • 当我关闭连接时(绝对属性“已连接”) 返回FALSE),连接仍显示在服务器进程上 列表。

在我关闭程序之前,服务器上的连接没有关闭。

有没有办法在不退出程序的情况下以真正删除服务器连接的方式关闭TADOConnection?

1 个答案:

答案 0 :(得分:1)

这是连接池;并且是一件好事。

但是,如果您真的想要损害性能,可以通过向连接字符串添加请求来选择退出连接池功能:

  ChangeToken.OnChange(
                () => { return this._reloadToken; },
                () => {
                    Thread.Sleep(250);
                    this.Load();
                });

这些 Provider=SQLOLEDB;Data Source=myServerAddress;Initial Catalog=myDataBase; User ID=myUsername;Password=correct horse battery stapler;OLE DB Services=-2; 选项记录在MSDN上:

  

Pooling in the Microsoft Data Access Components archive

OLE DB Services