Баг с загрузкой Blob-ов
Добавлено: Пн 05 фев 2018 11:24
На версии ODAC 10.1.4 (на старой версии всё нормально), только в Direct режиме и только на мультибайтовой базе (версия 11.2.0.4) столкнулся с багом при загрузке Blob-а. В тестовом примере процедура TestPkg.GetBlob возвращает Blob, при попытке записать его в файл - записывается только 86 байт(на самом деле возвращаю с базы гораздо больше).
Почему-то неверно вычисляется BS.Size сразу после создания CreateBlobStream. Реальный размер задаётся только после попытки чтения потока.
Почему-то неверно вычисляется BS.Size сразу после создания CreateBlobStream. Реальный размер задаётся только после попытки чтения потока.
Код: Выделить всё
var
BS: TStream;
fs: tfilestream;
begin
BS := nil;
try
with CreateOraQuery('select TestPkg.GetBlob from dual') do
try
Open;
First;
BS:= CreateBlobStream(Fields[0], bmRead);
fs := tfilestream.create('d:\1.dat', fmCreate);
try
BS.position := 0;
fs.copyfrom(BS, 0);
finally
fs.free;
end;
finally
Free;
end;
finally
BS.Free;
end;