ReadCount := FMaxLOBPartSize; // = 1024000
Buff := AllocMem(FMaxLOBPartSize);
try
repeat
// !!!!
if ReadCount > LOBSize - ALOBLocator.Position then
ReadCount := LOBSize - ALOBLocator.Position;
ReadedBytes := ALOBLocator.Read(Buff^, ReadCount);
SendLOBPart(ALOBLocator.Name, ALOBLocator.Size, ALOBLocator.Position,
Buff, ReadedBytes);
until (ALOBLocator.Position >= LOBSize);
finally
FreeMem(Buff);
end;