我使用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服务器后,我继续遇到以下错误:
无论PostgreSQL是启动还是停止,[FireDAC] [Phys] [PG] [libpq]没有与服务器的连接
和TFDConnection.Connected
仍为True
。
OnLost
,OnRecover
和OnRestored
永远不会被触发。
使用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