Страница 1 из 1

Баг с загрузкой Blob-ов

Добавлено: Пн 05 фев 2018 11:24
Alexandr
На версии ODAC 10.1.4 (на старой версии всё нормально), только в Direct режиме и только на мультибайтовой базе (версия 11.2.0.4) столкнулся с багом при загрузке Blob-а. В тестовом примере процедура TestPkg.GetBlob возвращает Blob, при попытке записать его в файл - записывается только 86 байт(на самом деле возвращаю с базы гораздо больше).
Почему-то неверно вычисляется 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;

Re: Баг с загрузкой Blob-ов

Добавлено: Вт 06 фев 2018 12:22
MaximG
Пожалуйста уточните, воспроизводится ли описываемая ошибка, когда опция DeferredLobRead имеет значение по умолчанию (Query.Options.DeferredLobRead = False) или же
использование данной опции не влияет на поведение Вашего примера.

Re: Баг с загрузкой Blob-ов

Добавлено: Ср 07 фев 2018 16:14
Alexandr
Ошибка воспроизводится при любом значении данной опции

Re: Баг с загрузкой Blob-ов

Добавлено: Чт 08 фев 2018 14:36
MaximG
Мы исследовали работу ODAC 10.1.4 в точном соответствии с Вашим описанием. К сожалению нам не удалось воспроизвести описываемую Вами ошибку. Для дальнейшего исследования, пожалуйста составьте и отправьте нам полный пример простейшего приложения, при выполнении которого проблема проявляет себя. Кроме того, нам понадобится скрипт на создание объектов
БД, используемых в этом примере, и заполение их данными. Для этого убодно воспользоваться
формой e-support ( https://www.devart.comменю "Support"\"Request Support") Возможно проблема связана со специфическими настройками, применяемыми Вами при использовании наших компонент

Re: Баг с загрузкой Blob-ов

Добавлено: Пн 19 фев 2018 11:36
Alexandr
Извиняюсь что ввёл Вас в заблуждение, баг воспроизводится только при Query.Options.DeferredLobRead := True;
Исходники отправил на саппорт.

Re: Баг с загрузкой Blob-ов

Добавлено: Вт 20 фев 2018 14:13
MaximG
Спасибо за Вашу информацию. Мы воспроизвели проблему и приступили к исправлению данной ошибки. Мы сообщим Вам о результатах как только получим их

Re: Баг с загрузкой Blob-ов

Добавлено: Вт 03 апр 2018 14:14
Alexandr
В новой версии ODAC 10.1.5 проблема устранена, спасибо!

Re: Баг с загрузкой Blob-ов

Добавлено: Вт 03 апр 2018 15:29
MaximG
Мы рады, что проблема разрешилась. Обращайтесь к нам по любым вопросам использования ODAC