Browse Source

* Moved code to clear calculated fields from TDataset to TBufDataset, based on patch from Petr Kristan

git-svn-id: trunk@10627 -
joost 17 years ago
parent
commit
654898d11a
2 changed files with 8 additions and 2 deletions
  1. 7 0
      packages/fcl-db/src/base/bufdataset.pas
  2. 1 2
      packages/fcl-db/src/base/dataset.inc

+ 7 - 0
packages/fcl-db/src/base/bufdataset.pas

@@ -209,6 +209,7 @@ type
     function GetChangeCount: integer; virtual;
     function  AllocRecordBuffer: PChar; override;
     procedure FreeRecordBuffer(var Buffer: PChar); override;
+    procedure ClearCalcFields(Buffer: PChar); override;
     procedure InternalInitRecord(Buffer: PChar); override;
     function  GetCanModify: Boolean; override;
     function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; override;
@@ -639,6 +640,12 @@ begin
   ReAllocMem(Buffer,0);
 end;
 
+procedure TBufDataset.ClearCalcFields(Buffer: PChar);
+begin
+  if CalcFieldsSize > 0 then
+    FillByte((Buffer+RecordSize)^,CalcFieldsSize,0);
+end;
+
 procedure TBufDataset.InternalOpen;
 
 var IndexNr : integer;

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

@@ -180,8 +180,7 @@ end;
 Procedure TDataset.ClearCalcFields(Buffer: PChar);
 
 begin
-  if FCalcFieldsSize > 0 then
-    FillByte((Buffer+RecordSize)^,FCalcFieldsSize,0);
+  // Empty
 end;
 
 Procedure TDataset.CloseBlob(Field: TField);