MS Access +ADO + Delphi problem

  • Автор темы Elfik
  • Дата начала
Статус
Закрыто для дальнейших ответов.
E

Elfik

#1
Создал базу MS Access, в которой имеется поле типа <Bitmap Image>. Связываю эту базу через ADOConnection со своей программой. Делфа видит тип этого поля как TBlobField. Пробую связать его с TImage через Assign ( CarImage.Picture.Assign(Cars.FieldByName('Photo')); ) - выдает ошибку"Bitmap image is not valid". То же самое имеем и с компонентом TDBImage.
Подскажите пожалуйста что надо сделать, чтобы отобразить рисунок из базы. Спасибо всем, кто откликнется.
 
B

Barmutik

#2
А каким образом ты помещаеш туда картинку?

У меня проблема была такая ... но я из неё вышел следующим образом... вычитывал через TBloBStream.. а потом делал LoadFromStream у компонента котороый будет показывать ...
 
E

Elfik

#3
В Access ставлю тип поля OLE Object. Потом Вставка->Обьект->Bitmap Image. Появляется окно mspaint, куда и копирую вставленую перед тем в clipboard картинку ну и Update Base.
И, если не трудно, наведи плз кусочек кода, где делается запись Blob'а в Stream, а потом считывание его компонентом.
 
E

Elfik

#4
По ходу дела вроде разобрался.
Это OLEObject, поэтому он никак не пойдёт в связке с компонентом TImage. Я думаю, здесь надо поставить на форму OLEContainer, а потом связать его с нашим полем, создав перед тем из него OLEObject:
uses COMOLE;

var Container:TOLEContainer
Fotka:Olevariant;
begin
Fotka:=CreateOLEObject(DataModule2.Cars.FieldByName('Photo'));
.....

Ну и далее по сценарию:). Ссылка:
http://mf.grsu.by/UchProc/konspekt/com/ch06
 
B

Barmutik

#5
нее .. в этом поле можно хранить любые двоичные данные.

Другой вопрос что помещаеш ты их как ОЛЕ объект а пытаешся вычитать как рисунок... в этом и проблема..

Ты помещай из Дельфей как рисунок .. тогда он спокойно и вычитается как рисунок ...
 
P

Peter

#6
Доброго времени суток!

Помогите пожалуйста если есть у кого готовый пример полностью рабочий по выше приведенноу вопросу скиньте ссылку!

Заранее благодарен!
 
Статус
Закрыто для дальнейших ответов.