You've already forked lazarus-ccr
fix blob support in rxMemDataSet
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1156 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -407,8 +407,8 @@ begin
|
|||||||
if Value.BlobFieldCount > 0 then
|
if Value.BlobFieldCount > 0 then
|
||||||
begin
|
begin
|
||||||
GetMem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData));
|
GetMem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData));
|
||||||
|
FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0);
|
||||||
FinalizeBlobFields(FBlobs, Value.BlobFieldCount);
|
FinalizeBlobFields(FBlobs, Value.BlobFieldCount);
|
||||||
// FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0);
|
|
||||||
// Initialize(PMemBlobArray(FBlobs)^[0]);//, Value.BlobFieldCount);
|
// Initialize(PMemBlobArray(FBlobs)^[0]);//, Value.BlobFieldCount);
|
||||||
end;
|
end;
|
||||||
DataSize := 0;
|
DataSize := 0;
|
||||||
@ -604,14 +604,15 @@ end;
|
|||||||
function TRxMemoryData.AllocRecordBuffer: PChar;
|
function TRxMemoryData.AllocRecordBuffer: PChar;
|
||||||
begin
|
begin
|
||||||
Result := StrAlloc(FRecBufSize);
|
Result := StrAlloc(FRecBufSize);
|
||||||
FillChar(Result^, FRecBufSize, 0);
|
InternalInitRecord(Result);
|
||||||
|
{ FillChar(Result^, FRecBufSize, 0);
|
||||||
if BlobFieldCount > 0 then
|
if BlobFieldCount > 0 then
|
||||||
begin
|
begin
|
||||||
// Initialize(PMemBlobArray(Result + FBlobOfs)^[0]);//, BlobFieldCount);
|
// Initialize(PMemBlobArray(Result + FBlobOfs)^[0]);//, BlobFieldCount);
|
||||||
// FillChar(PMemBlobArray(Result + FBlobOfs)^, BlobFieldCount * SizeOf(Pointer),0);//, BlobFieldCount);
|
// FillChar(PMemBlobArray(Result + FBlobOfs)^, BlobFieldCount * SizeOf(Pointer),0);//, BlobFieldCount);
|
||||||
FinalizeBlobFields(PMemBlobArray(Result + FBlobOfs), BlobFieldCount);
|
FinalizeBlobFields(PMemBlobArray(Result + FBlobOfs), BlobFieldCount);
|
||||||
|
|
||||||
end;
|
end;}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRxMemoryData.FreeRecordBuffer(var Buffer: PChar);
|
procedure TRxMemoryData.FreeRecordBuffer(var Buffer: PChar);
|
||||||
@ -633,9 +634,12 @@ var
|
|||||||
I: Integer;
|
I: Integer;
|
||||||
begin
|
begin
|
||||||
FillChar(Buffer^, FBlobOfs, 0);
|
FillChar(Buffer^, FBlobOfs, 0);
|
||||||
|
FillChar(PByteArray(Buffer + FBlobOfs)^, BlobFieldCount * SizeOf(Pointer), 0);
|
||||||
for I := 0 to BlobFieldCount - 1 do
|
for I := 0 to BlobFieldCount - 1 do
|
||||||
|
begin
|
||||||
PMemBlobArray(Buffer + FBlobOfs)^[I] := '';
|
PMemBlobArray(Buffer + FBlobOfs)^[I] := '';
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TRxMemoryData.InitRecord(Buffer: PChar);
|
procedure TRxMemoryData.InitRecord(Buffer: PChar);
|
||||||
begin
|
begin
|
||||||
|
Reference in New Issue
Block a user