当PostgreSQL停止TFDConnection.Connected保持为True

时间:2017-10-19 09:50:04

标签: postgresql delphi firedac disconnect reconnect

我使用Delphi 10和FireDAC连接到PostgreSQL 9.5 x64。

我的软件中有一个重新连接功能,它依赖于TFDConnection.Connected标志:

if not _conn.Connected then
  if _autoConnect then
    _conn.Connected := True
  else
    raise Exception.Create('Not connected to database');

将软件连接到PostgreSQL并开始执行查询后,我转到Windows服务控制面板并停止启动PostgreSQL服务器以测试重新连接功能。 启动PostgreSQL服务器后,我继续遇到以下错误:

  

[FireDAC] [Phys] [PG] [libpq]没有与服务器的连接

无论PostgreSQL是启动还是停止,

TFDConnection.Connected仍为True

当PostgreSQL停止时,

OnLostOnRecoverOnRestored永远不会被触发。

使用MS SQL Server 2012,无论是本地还是远程,一切都还可以。

如何检测PostgreSQL断开连接?

我的DLL的版本是:

libpq.dll      9.5.2.1688
LIBEAY32.dll   1.0.2.7
SSLEAY32.dll   1.0.2.7
libiconv-2.dll 1.14.0.0
libintl-8.dll  0.9.14.0

0 个答案:

没有答案