Работа с TBlobField
В базе хранятся файлы в битовом поле BlobField (.txt, .xls, .doc, .jpg). В клиенте необходимо иметь возможность просматривать эти файлы. Я пробовал делать через OleContainer таким образом:
TMemoryStream *ms = new TMemoryStream;
MyQuery->FieldByName("MyFile")->SaveToStream(ms);
Ole->LoadFromStream(ms);
delete ms;
На строке с LoadFromStream вываливается ошибка - Stream read error.
Если сделать так:
TBlobStream *ms = new TBlobStream(((TBlobField*)qu->FieldByName("FILE")), bmRead);
Ole->LoadFromStream(ms);
delete ms;
то вываливается ошибка Invalid class typecast на строчке с new.
Никто не сталкивался с таким вопросом?
ico->LoadFromStream(IBQuery2->CreateBlobStream(IBQuery2->Fields->Fields[1], bmRead));
я делал вот так для иконки, наверное так же можно и для файла
Ole->LoadFromStream(ms);
нужно было выставить позицию
ms->Position=0;