Найдено 6 результатов

Alexandr
Вт 03 апр 2018 14:14
Форум: Oracle Data Access Components
Тема: Баг с загрузкой Blob-ов
Ответы: 7
Просмотры: 16957

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

В новой версии ODAC 10.1.5 проблема устранена, спасибо!
Alexandr
Пн 19 фев 2018 11:36
Форум: Oracle Data Access Components
Тема: Баг с загрузкой Blob-ов
Ответы: 7
Просмотры: 16957

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

Извиняюсь что ввёл Вас в заблуждение, баг воспроизводится только при Query.Options.DeferredLobRead := True;
Исходники отправил на саппорт.
Alexandr
Ср 07 фев 2018 16:14
Форум: Oracle Data Access Components
Тема: Баг с загрузкой Blob-ов
Ответы: 7
Просмотры: 16957

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

Ошибка воспроизводится при любом значении данной опции
Alexandr
Пн 05 фев 2018 11:24
Форум: Oracle Data Access Components
Тема: Баг с загрузкой Blob-ов
Ответы: 7
Просмотры: 16957

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

На версии 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;
Alexandr
Пт 25 ноя 2016 08:04
Форум: Oracle Data Access Components
Тема: Странное поведение RefreshRecord
Ответы: 1
Просмотры: 7643

Странное поведение RefreshRecord

ODAC 9.7.28 в Direct режиме на мультибайтовой базе (11.2.0.4).
В TOraQuery Параметры:
: P1 - тип string, значение 'A', ParamType - не задан
KeyField = rowid (можно и другой)

Код: Выделить всё

select '123' as ID, rowid from dual
where
(:P1<>'B')
Открывается OraQuery нормально, но при RefreshRecord, выдаёт ошибку что не найден rowid (или другое поле). По трассе видно что Bind-ы принимают неверные значения. Если же задать ParamType = 'IN', то всё работает нормально. Так же всё работает нормально при не заданном ParamType в режиме с клиентом Oracle. На версии ODAC 9.7.25 таких ошибок то же не было.
Alexandr
Чт 13 окт 2016 11:41
Форум: Oracle Data Access Components
Тема: Bind-ы, значения которых null, в неверной последовательности
Ответы: 1
Просмотры: 6098

Bind-ы, значения которых null, в неверной последовательности

Добрый день!
В ODAC 9.7.26 в Direct режиме только на мультибайтовой базе (11.2.0.4) проявляется следующий баг.
В TOraQuery Параметры:
:str0 - тип string, значение null
:str1 - тип string, значение 1

Код: Выделить всё

select '123' from dual
where
:str0 is null and
:str1 = 1
В результате возвращается 0 строк. По трассе заметно что Bind0 это :str1, a Bind1 это :str0, т.е. они перепутаны местами.
Если запустить без Direct режима или на не мультибайтовой базе или с предыдущей версией ODAC то последовательности Bind-ов верная.