Browse Source

--- Merging r22562 into '.':
U packages/fcl-db/tests/testdbbasics.pas
U packages/fcl-db/src/base/dataset.inc
--- Merging r22601 into '.':
U packages/fcl-db/src/base/fields.inc

# revisions: 22562,22601
r22562 | marco | 2012-10-06 16:18:17 +0200 (Sat, 06 Oct 2012) | 2 lines
Changed paths:
M /trunk/packages/fcl-db/src/base/dataset.inc
M /trunk/packages/fcl-db/tests/testdbbasics.pas

* applied BOF patch + test from Lacak2. Mantis #22377
r22601 | michael | 2012-10-09 13:07:08 +0200 (Tue, 09 Oct 2012) | 1 line
Changed paths:
M /trunk/packages/fcl-db/src/base/fields.inc

* take care of destructor being called if constructor failed

git-svn-id: branches/fixes_2_6@22675 -

marco 13 years ago
parent
commit
afd9f5688d

+ 1 - 1
packages/fcl-db/src/base/dataset.inc

@@ -404,12 +404,12 @@ begin
 {$ifdef dsdebug}
 {$ifdef dsdebug}
   Writeln ('Calling internal open');
   Writeln ('Calling internal open');
 {$endif}
 {$endif}
-  FBOF:=True;
 {$ifdef dsdebug}
 {$ifdef dsdebug}
   Writeln ('Calling RecalcBufListSize');
   Writeln ('Calling RecalcBufListSize');
 {$endif}
 {$endif}
   FRecordcount := 0;
   FRecordcount := 0;
   RecalcBufListSize;
   RecalcBufListSize;
+  FBOF:=True;
   FEOF := (FRecordcount = 0);
   FEOF := (FRecordcount = 0);
 end;
 end;
 
 

+ 3 - 2
packages/fcl-db/src/base/fields.inc

@@ -3142,8 +3142,9 @@ end;
 Destructor TFields.Destroy;
 Destructor TFields.Destroy;
 
 
 begin
 begin
-  Clear;
-  FFieldList.Free;
+  if Assigned(FFieldList) then
+    Clear;
+  FreeAndNil(FFieldList);
   inherited Destroy;
   inherited Destroy;
 end;
 end;
 
 

+ 2 - 0
packages/fcl-db/tests/testdbbasics.pas

@@ -367,6 +367,8 @@ begin
     CheckTrue(EOF);
     CheckTrue(EOF);
     CheckTrue(BOF);
     CheckTrue(BOF);
     open;
     open;
+    CheckTrue(BOF, 'No BOF when opened non-empty dataset');
+    CheckFalse(EOF, 'EOF after opened non-empty dataset');
     close;
     close;
     CheckTrue(EOF);
     CheckTrue(EOF);
     CheckTrue(BOF);
     CheckTrue(BOF);