Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.26;
Скачать: CL | DM;

Вниз

BLOB- поля в базах Microsoft   Найти похожие ветки 

 
ДМ   (2002-12-06 07:09) [0]

Читаю BLOB-поле из базы MS Access (в ней оно представлено, как поле OLE- объекта) в нем записаны различные объекты (документы Word и Excel) при попытке запихать объект в OLEContainer получаю ошибку EOLEError "Invalid stream format"...


BS := TADOBlobStream.Create(ADOTable1BLOBField, bmRead);
OleContainer1.LoadFromStream(BS);


Подскажите пожалуста как с этим бороться...


 
Lola ©   (2002-12-06 11:37) [1]

Попробуй разделить по типам с помощью AnsiLowerCase(Ext)


 
Leran2002 ©   (2002-12-07 10:52) [2]

procedure TForm1.SaveClick(Sender: TObject);
var
BF:TBlobField;
S:string;
begin
ADOQuery2.Open;
BF:=(ADOQuery2.FieldByName("BlobF") AS TBlobField);
S:=ExtractFilePath(ParamStr(0))+"data2.doc";

// сохраняем Блоб в файл
BF.SaveToFile(S);

// создать из файла
OleContainer1.CreateObjectFromFile(S,false);

ADOQuery2.Close;
end;


 
BlackTiger   (2002-12-07 15:31) [3]

А как они туда попали? Средствами Дельфи или Аксесса?
Дело в том, что сам Аксесс, если использовать стандартную процедуру записи в такое поле ЗАКЛЮЧАЕТ данные в ОБРАМЛЕНИЕ, от которого нужно избавляться (сколько-то байт вначале и в конце самого "объекта"). Столкнулся с этим, когда пытался прочитать картинки, сохраненные в такой базе - сравнивал исходный файл с результатом, сохраненным из базы. Выход был только в записи объекта как поток байтов своим кодом (без обрамлений).



Страницы: 1 вся ветка

Текущий архив: 2002.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
14-86091
Gaber
2002-12-02 12:13
2002.12.26
Список стран


14-86100
iNew
2002-12-05 12:48
2002.12.26
Пытаюсь скачать файл, а ссылка на него вот в таком виде:


4-86220
KUZIA
2002-11-12 13:10
2002.12.26
Как написать скринсавер


8-86045
Дельфятник
2002-09-10 13:39
2002.12.26
Как перекрасить в картинке все точки белого цвета в заданный?


14-86093
RV
2002-12-05 10:14
2002.12.26
Задачка :)