From 151d72661ac29f70556346a8b29b239a495a1b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Sun, 15 Oct 2023 11:16:45 +0200 Subject: [PATCH] * Force close during destroy, add event to report errors --- packages/fcl-db/src/base/database.inc | 35 +++++++++++++++++++++++++-- packages/fcl-db/src/base/db.pas | 5 ++++ packages/fcl-db/src/sqldb/sqldb.pp | 2 +- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/packages/fcl-db/src/base/database.inc b/packages/fcl-db/src/base/database.inc index dc18552427..c07bed0e20 100644 --- a/packages/fcl-db/src/base/database.inc +++ b/packages/fcl-db/src/base/database.inc @@ -66,7 +66,7 @@ end; destructor TDatabase.Destroy; begin - Connected:=False; + CloseForDestroy; RemoveDatasets; RemoveTransactions; FDatasets.Free; @@ -650,6 +650,12 @@ begin FBeforeDisconnect:=AValue; end; +procedure TCustomConnection.DoCloseError(aError: Exception); +begin + if Assigned(FOnCloseError) then + FOnCloseError(Self,aError); +end; + procedure TCustomConnection.DoLoginPrompt; var @@ -764,9 +770,34 @@ begin end; end; +procedure TCustomConnection.CloseForDestroy; + +Const + MaxCount = 2; + +var + Force : Boolean; + aCount : Integer; +begin + Force:=False; + aCount:=0; + While Connected and (aCount