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

Вниз

ADO Access поля типа OLE-объект   Найти похожие ветки 

 
Fanta   (2004-05-13 07:58) [0]

Простите заранее за дебильный вопрос: просмотрела много форумов и FAQов на разных сайтах, потратила кучу времени, нашла много людей, столкнувшихся с такой же проблемой и так и не нашедших решения...
В общем, так. Есть база Access с полем типа Ole-объект (если говорить вообще, то в этом поле должен быть всего лишь рисунок любого формата, почти любого, из самых распространенных). И есть приложение, которое должно из этой Access базы выводить поле с ole-объектом (т.е. с рисунком).
Вопрос в том, какой компонент лучше использовать для вывода рисунка. Если это OleContainer, то он не хочет читать из потока ни в какую:
procedure TForm1.OleContainer1Activate(Sender: TObject);
var
 stream: TStream;
begin
 ADOTable1.First;
 stream := ADOTable1.CreateBlobStream(DataSource1.DataSet.FieldByName("Picture"), bmRead);
 OleContainer1.LoadFromStream(stream);
 OleContainer1.Run;
 OleContainer1.DoVerb(ovShow)
end;
Конечно, можно было БЫ использовать DBImage, но он сообщает об ошибке при попытке свойству DataField присвоить то самое поле типа ole-объект.
Такая вот задача. Если кто знает, что надо делать, пожалуйста, подскажите!


 
sniknik ©   (2004-05-13 08:15) [1]

если записывать рисунок в самом аксессе (например перетащив bmp с проводника в поле), то он добавит к рисунку 82 байта, свой префикс (и поле в нем так и будет называться "рисунок паинт браш").
если пытаешся положить сам в такомже формате тебе нужно или найти описание этого префикса или самому разобрать формат, и ложить также. читать тоже с учетом этого.

> Конечно, можно было БЫ использовать DBImage
а вот этого сделать никак не получится если хочеш читать/писать "родные" поля.


 
Fanta   (2004-05-13 08:33) [2]

В смысле "ложить" в OleContainer?
И перед добавлением в OleContainer я должна этот префикс удалить?
Чуть подробнее!


 
Fanta   (2004-05-13 08:45) [3]

Это то есть в oleContainer надо грузить поток со смещением в 82 байта. Так получается? Sniknik, я тут что, сама с собой разговариваю? Отзовись!


 
sniknik ©   (2004-05-13 09:04) [4]

> И перед добавлением в OleContainer я должна этот префикс удалить?
скорее добавить.

> Так получается? Sniknik, я тут что, сама с собой разговариваю?
здесь не чат, глупо ожидать ответов через пять мин. (а счас я вообще на работу пойду и ~1.5часа меня здесь не будет)

я тебе дал (помоему) вполне достаточно чтобы понять где "копать", тебе нужно понять разницу между рисунком положенным тобой и аксессом. именно на эту разницу я указал.
но дальше твоя забота, тем более конкретно этим я не занимался, формат префикса не знаю (иначе бы дал), oleContainer считаю лишним (если только для рисунков), чего ты хочеш добится этим не знаю, за тебя делать не буду ... и т.д.

p.s. попроси татьяну выслать тебе пример, там разницу видно наглядно
http://delphimaster.net/view/3-1084337455/



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

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

Наверх




Память: 0.48 MB
Время: 0.032 c
11-1073682537
mdw
2004-01-10 00:08
2004.05.30
Еще сайт посвященный KOL.


14-1083873348
SeriousSam
2004-05-06 23:55
2004.05.30
Подключайтесь!


14-1084340647
Vitas2
2004-05-12 09:44
2004.05.30
ShareIt


7-1082526550
DC
2004-04-21 09:49
2004.05.30
Набор символов Unicod


14-1083932563
Vovchik_A
2004-05-07 16:22
2004.05.30
С наступающим праздником !