Browse Source

* Fix AV in some cases. reported by Pascal Riekenberg

Michaël Van Canneyt 1 year ago
parent
commit
5f845aa8ff
1 changed files with 9 additions and 10 deletions
  1. 9 10
      packages/fcl-db/src/base/database.inc

+ 9 - 10
packages/fcl-db/src/base/database.inc

@@ -454,15 +454,14 @@ end;
 procedure TDBTransaction.SetDatabase(Value: TDatabase);
 procedure TDBTransaction.SetDatabase(Value: TDatabase);
 
 
 begin
 begin
-  If Value<>FDatabase then
-    begin
-    CheckInactive;
-    If Assigned(FDatabase) then
-      FDatabase.UnregisterTransaction(Self);
-    If Value<>Nil Then
-      Value.RegisterTransaction(Self);
-    FDatabase:=Value;
-    end;
+  If Value=FDatabase then
+    exit;
+  CheckInactive;
+  If Assigned(FDatabase) then
+    FDatabase.UnregisterTransaction(Self);
+  If Value<>Nil Then
+    Value.RegisterTransaction(Self);
+  FDatabase:=Value;
 end;
 end;
 
 
 constructor TDBTransaction.Create(AOwner: TComponent);
 constructor TDBTransaction.Create(AOwner: TComponent);
@@ -523,9 +522,9 @@ end;
 destructor TDBTransaction.Destroy;
 destructor TDBTransaction.Destroy;
 
 
 begin
 begin
-  Database:=Nil;
   CloseDataSets;
   CloseDataSets;
   RemoveDatasets;
   RemoveDatasets;
+  Database:=Nil;
   FDatasets.Free;
   FDatasets.Free;
   Inherited;
   Inherited;
 end;
 end;