Непонятки с OLE

отредактировано 04:26 Раздел: FastReport 3.0
у меня существует форма. На ней OLE Container. ПОльзователь может загрузить любой документ (в частьности .Doc). При сохранении объекта в БД сначало происходит сохранение из ОЛЕКонтейнера в файл, а затем файл загружается в поле набора данных. ПРи выборке я возвращаю сохранённый документ и хочу его отобразить в FR. Но в момент загрузки объекта возникает ошибка чтения потока в след. процедуре.


procedure TfrxOLEView.GetData;
var
s:TMemoryStream;
begin
inherited;
if IsDataField then
begin
s:= TMemoryStream.Create;
try
DataSet.AssignBlobTo(DataField, s);
FOleContainer.LoadFromStream(s);
finally
s.Free;
end;
end;
end;

Есть ли безболезненное решение задачи?

Комментарии

  • Stalker4Stalker4 123
    отредактировано 04:26
    Попробуй два варианта:

    1) Сохрани из обычного контейнера только сам doc файл.
    2) Сохрани из обычного контейнера все содержимое контейнера (в этом случае сохраняется сам файл плюс какая то еще дополнительная информация самого контейнера).

    А потом попробуй загрузить один из этих файлов в frxOLEView.
  • отредактировано 04:26
    Stalker4 написал:
    Попробуй два варианта:

    1) Сохрани из обычного контейнера только сам doc файл.
    2) Сохрани из обычного контейнера все содержимое контейнера (в этом случае сохраняется сам файл плюс какая то еще дополнительная информация самого контейнера).

    А потом попробуй загрузить один из этих файлов в frxOLEView.
    Я сделал производный компонент, и переопределил метод GetDate. В нём сначало сохранил во временный файл, а затем загрузил с помощью CreateFile

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.