Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Файл из базы данных в оле-контейнер

295
09 сентября 2003 года
gray_k
356 / / 20.12.1999
В базе (интербейз) хранятся файлы (BLOB-поле). Известен тип файла (рисунок, документ ворд). Как из базы показать файл в OleCiontainer, не создавая временный файл на диске.
Если создавать файл, то всё просто.
А вот напрямую из базы не получается. Я пробовал так:
Ole->CreateObject("MSPhotoEd.3", true);/*показываем рисунок jpeg*/
TMemoryStream *ms = new TMemoryStream;
quFILE->SaveToStream(ms);/*поле набора данных (TBlobField*)*/
TJPEGImage *jpg = new TJPEGImage();
ms->Seek(0,0);
jpg->LoadFromStream(ms);
ms->Seek(0,0);
Ole->LoadFromStream(ms);

на последней строчке вываливается ошибка Inavalid Stream Format.
358
09 сентября 2003 года
moonmike
423 / / 18.10.2002
Я из MSSQL2k гружу документы Word&Excel вот таким образом:
Код:
TMemoryStream *MS = new(TMemoryStream);
try
   {
   MS = (TMemoryStream *)((TDMod*)DM)->aspReturnOtchet->CreateBlobStream(((TDMod*)DM)->aspReturnOtchet->FieldByName("Otchet"), bmRead);
   if (MS->Size)
       {
       OC->LoadFromStream(MS);
       OC->Iconic = false;
       OC->SizeMode = smAutoSize;
       OC->Run();
       OC->DoVerb(ovShow);
       }
    }
__finally
    {
    delete MS;
    }

Одно НО, сохраняю в БД я их тоже из OleContainer'a
 
Код:
TMemoryStream *MS = new(TMemoryStream);
OC->SaveToStream(MS);
MS->Seek(0,soFromBeginning);
((TDMod*)DM)->aspInsertRaschet->Parameters->ParamByName("@Rasсh")->LoadFromStream(MS, ftVarBytes);
delete MS;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог