|
@@ -2607,7 +2607,10 @@ begin
|
|
if assigned(Buffer) then
|
|
if assigned(Buffer) then
|
|
begin
|
|
begin
|
|
inc(CurrBuff,FFieldBufPositions[Field.FieldNo-1]);
|
|
inc(CurrBuff,FFieldBufPositions[Field.FieldNo-1]);
|
|
- Move(CurrBuff^, Buffer^, GetFieldSize(FieldDefs[Field.FieldNo-1]));
|
|
|
|
|
|
+ if Field.IsBlob then // we need GetFieldSize for BLOB but Field.DataSize for others - #36747
|
|
|
|
+ Move(CurrBuff^, Buffer^, GetFieldSize(FieldDefs[Field.FieldNo-1]))
|
|
|
|
+ else
|
|
|
|
+ Move(CurrBuff^, Buffer^, Field.DataSize);
|
|
end;
|
|
end;
|
|
Result := True;
|
|
Result := True;
|
|
end
|
|
end
|
|
@@ -2649,7 +2652,10 @@ begin
|
|
inc(CurrBuff,FFieldBufPositions[Field.FieldNo-1]);
|
|
inc(CurrBuff,FFieldBufPositions[Field.FieldNo-1]);
|
|
if assigned(buffer) then
|
|
if assigned(buffer) then
|
|
begin
|
|
begin
|
|
- Move(Buffer^, CurrBuff^, GetFieldSize(FieldDefs[Field.FieldNo-1]));
|
|
|
|
|
|
+ if Field.IsBlob then // we need GetFieldSize for BLOB but Field.DataSize for others - #36747
|
|
|
|
+ Move(Buffer^, CurrBuff^, GetFieldSize(FieldDefs[Field.FieldNo-1]))
|
|
|
|
+ else
|
|
|
|
+ Move(Buffer^, CurrBuff^, Field.DataSize);
|
|
unSetFieldIsNull(NullMask,Field.FieldNo-1);
|
|
unSetFieldIsNull(NullMask,Field.FieldNo-1);
|
|
end
|
|
end
|
|
else
|
|
else
|