From f59a2272d9f8b3f9d65387de7ba29b16ee4ffefe Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 8 Feb 2014 11:03:21 +0000 Subject: [PATCH] * Applied slightly modified patch from bug ID #24110 git-svn-id: trunk@26719 - --- packages/fcl-db/src/base/bufdataset.pas | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/fcl-db/src/base/bufdataset.pas b/packages/fcl-db/src/base/bufdataset.pas index 2c5b530442..d4fb87ed05 100644 --- a/packages/fcl-db/src/base/bufdataset.pas +++ b/packages/fcl-db/src/base/bufdataset.pas @@ -563,6 +563,7 @@ type procedure ApplyUpdates; virtual; overload; procedure ApplyUpdates(MaxErrors: Integer); virtual; overload; procedure MergeChangeLog; + Procedure ClearIndexes; procedure CancelUpdates; virtual; destructor Destroy; override; function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; override; @@ -838,9 +839,7 @@ begin SetLength(FUpdateBuffer,0); SetLength(FBlobBuffers,0); SetLength(FUpdateBlobBuffers,0); - For I:=0 to Length(FIndexes)-1 do - FreeAndNil(Findexes[I]); - SetLength(FIndexes,0); + ClearIndexes; FreeAndNil(FIndexDefs); inherited destroy; end; @@ -2606,6 +2605,17 @@ begin result := ABlobBuffer; end; +procedure TCustomBufDataset.ClearIndexes; +var + i:integer; +begin + CheckInactive; + For I:=0 to Length(FIndexes)-1 do + FreeAndNil(Findexes[I]); + SetLength(FIndexes,0); + FIndexesCount:=0; +end; + function TCustomBufDataset.GetNewWriteBlobBuffer : PBlobBuffer; var ABlobBuffer : PBlobBuffer;