فهرست منبع

* Deleted records should not be written to file. Fixes issue #40169

Michaël Van Canneyt 2 روز پیش
والد
کامیت
5998ae0e58
1فایلهای تغییر یافته به همراه9 افزوده شده و 0 حذف شده
  1. 9 0
      packages/fcl-db/src/base/csvdataset.pp

+ 9 - 0
packages/fcl-db/src/base/csvdataset.pp

@@ -109,6 +109,7 @@ Type
     function GetPacketReader(const Format: TDataPacketFormat; const AStream: TStream): TDataPacketReader; override;
     procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); override;
     procedure InternalInitFieldDefs; override;
+    procedure DoBeforeClose; override;
   Public
     Constructor Create(AOwner : TComponent); override;
     Destructor Destroy; override;
@@ -281,6 +282,8 @@ Var
   I : integer;
 
 begin
+  if (rsvDeleted in ARowState) or (rsvOriginal in ARowState) then
+    Exit;
   For I:=0 to Dataset.Fields.Count-1 do
     FBuilder.AppendCell(Dataset.Fields[i].AsString);
   FBuilder.AppendRow;
@@ -402,6 +405,12 @@ begin
   end;
 end;
 
+procedure TCustomCSVDataset.DoBeforeClose;
+begin
+  MergeChangeLog;
+  inherited DoBeforeClose;
+end;
+
 procedure TCustomCSVDataset.SaveToCSVStream(AStream: TStream);
 
 Var