From 6031b4b8283bc5d06597cec2aeec0824007245fa Mon Sep 17 00:00:00 2001 From: alexs75 Date: Wed, 20 May 2009 17:15:31 +0000 Subject: [PATCH] fix delete record with blob fieldin TRxmemDataset git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@806 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/rxmemds.pas | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/components/rx/rxmemds.pas b/components/rx/rxmemds.pas index 92c71197e..8834ac996 100644 --- a/components/rx/rxmemds.pas +++ b/components/rx/rxmemds.pas @@ -186,7 +186,7 @@ type FMemoryData: TRxMemoryData; FID: Integer; FData: Pointer; - FBlobs: Pointer; + FBlobs: PMemBlobArray; function GetIndex: Integer; procedure SetMemoryData(Value: TRxMemoryData; UpdateParent: Boolean); protected @@ -386,15 +386,10 @@ begin if FMemoryData <> nil then begin FMemoryData.FRecords.Remove(Self); -{ if FMemoryData.BlobFieldCount > 0 then - Finalize(PMemBlobArray(FBlobs)^[0], FMemoryData.BlobFieldCount); - ReallocMem(FBlobs, 0);} if FMemoryData.BlobFieldCount > 0 then begin - FinalizeBlobFields(FBlobs, Value.BlobFieldCount); - Freemem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData)); - //Finalize(PMemBlobArray(FBlobs)^[0], FMemoryData.BlobFieldCount); -// ReallocMem(FBlobs, 0); + FinalizeBlobFields(FBlobs, FMemoryData.BlobFieldCount); + Freemem(FBlobs, FMemoryData.BlobFieldCount * SizeOf(TMemBlobData)); end; FBlobs:=nil; ReallocMem(FData, 0); @@ -411,8 +406,6 @@ begin FMemoryData := Value; if Value.BlobFieldCount > 0 then begin -// ReallocMem(FBlobs, Value.BlobFieldCount * SizeOf(Pointer)); -// Initialize(PMemBlobArray(FBlobs)^[0]);//, Value.BlobFieldCount); GetMem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData)); FinalizeBlobFields(FBlobs, Value.BlobFieldCount); // FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0);