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

Обсуждение возникших проблем, предложений и ошибок ODAC компонентов

Ответить
Alexandr
Сообщения: 6
Зарегистрирован: Чт 13 окт 2016 11:02

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

Сообщение Alexandr » Пн 05 фев 2018 11:24

На версии 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;

MaximG
Devart Team
Сообщения: 99
Зарегистрирован: Пн 06 июл 2015 12:51

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

Сообщение MaximG » Вт 06 фев 2018 12:22

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

Alexandr
Сообщения: 6
Зарегистрирован: Чт 13 окт 2016 11:02

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

Сообщение Alexandr » Ср 07 фев 2018 16:14

Ошибка воспроизводится при любом значении данной опции

MaximG
Devart Team
Сообщения: 99
Зарегистрирован: Пн 06 июл 2015 12:51

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

Сообщение MaximG » Чт 08 фев 2018 14:36

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

Alexandr
Сообщения: 6
Зарегистрирован: Чт 13 окт 2016 11:02

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

Сообщение Alexandr » Пн 19 фев 2018 11:36

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

MaximG
Devart Team
Сообщения: 99
Зарегистрирован: Пн 06 июл 2015 12:51

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

Сообщение MaximG » Вт 20 фев 2018 14:13

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

Alexandr
Сообщения: 6
Зарегистрирован: Чт 13 окт 2016 11:02

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

Сообщение Alexandr » Вт 03 апр 2018 14:14

В новой версии ODAC 10.1.5 проблема устранена, спасибо!

MaximG
Devart Team
Сообщения: 99
Зарегистрирован: Пн 06 июл 2015 12:51

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

Сообщение MaximG » Вт 03 апр 2018 15:29

Мы рады, что проблема разрешилась. Обращайтесь к нам по любым вопросам использования ODAC

Ответить