From d4c848649ceb8e98d321ec5074979e1687aa033d Mon Sep 17 00:00:00 2001 From: "rosenfield.albert" Date: Wed, 4 Mar 2009 17:11:32 +0000 Subject: [PATCH] Bugfix: regression - accidentally masked exceptions from Reconnect(). --- source/main.pas | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/main.pas b/source/main.pas index 579e8921..d7440962 100644 --- a/source/main.pas +++ b/source/main.pas @@ -5814,6 +5814,8 @@ end; // Searchbox unfocused procedure TMainForm.CheckConnection; +var + connected: Boolean; begin if not FMysqlConn.IsAlive then begin LogSQL('Connection failure detected. Trying to reconnect.', true); @@ -5823,16 +5825,18 @@ begin TimerHostUptimeTimer(self); FQueryRunning := false; try + connected := True; try // CheckConnected() doesn't really check anything, it // just sees if the driver has disposed of it's connection // by means of a Disconnect() or not. In which case there // is no point in doing a Reconnect(), it will NOP. FMysqlConn.Connection.CheckConnected; - FMysqlConn.Connection.Reconnect; except - FMysqlConn.Connection.Connect; + connected := False; end; + if connected then FMysqlConn.Connection.Reconnect + else FMysqlConn.Connection.Connect; time_connected := 0; TimerConnected.Enabled := true; LogSQL('Connected. Thread-ID: ' + IntToStr( MySQLConn.Connection.GetThreadId ));