From 1750ddb3a5ebd81023e6850414fe5cba47c6bc0a Mon Sep 17 00:00:00 2001 From: alexs75 Date: Mon, 8 Feb 2010 20:19:26 +0000 Subject: [PATCH] fix blob support in rxMemDataSet git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1156 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/rxmemds.pas | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/rx/rxmemds.pas b/components/rx/rxmemds.pas index 0ccf1c1bb..5e930a3c0 100644 --- a/components/rx/rxmemds.pas +++ b/components/rx/rxmemds.pas @@ -407,8 +407,8 @@ begin if Value.BlobFieldCount > 0 then begin GetMem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData)); + FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0); FinalizeBlobFields(FBlobs, Value.BlobFieldCount); -// FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0); // Initialize(PMemBlobArray(FBlobs)^[0]);//, Value.BlobFieldCount); end; DataSize := 0; @@ -604,14 +604,15 @@ end; function TRxMemoryData.AllocRecordBuffer: PChar; begin Result := StrAlloc(FRecBufSize); - FillChar(Result^, FRecBufSize, 0); + InternalInitRecord(Result); +{ FillChar(Result^, FRecBufSize, 0); if BlobFieldCount > 0 then begin // Initialize(PMemBlobArray(Result + FBlobOfs)^[0]);//, BlobFieldCount); // FillChar(PMemBlobArray(Result + FBlobOfs)^, BlobFieldCount * SizeOf(Pointer),0);//, BlobFieldCount); FinalizeBlobFields(PMemBlobArray(Result + FBlobOfs), BlobFieldCount); - end; + end;} end; procedure TRxMemoryData.FreeRecordBuffer(var Buffer: PChar); @@ -633,8 +634,11 @@ var I: Integer; begin FillChar(Buffer^, FBlobOfs, 0); + FillChar(PByteArray(Buffer + FBlobOfs)^, BlobFieldCount * SizeOf(Pointer), 0); for I := 0 to BlobFieldCount - 1 do + begin PMemBlobArray(Buffer + FBlobOfs)^[I] := ''; + end; end; procedure TRxMemoryData.InitRecord(Buffer: PChar);