Страница 1 из 1

Фото в бд paradox через OLE в Delphi

Добавлено: 10 сен 2005, 15:43
кирил
Здравствуйте, помогите пожалуйста кто может!!!

Есть база Paradox, в ней поле BLOB OLE. Остальные поля вывожу в dbgrid, а ole поле надо вывести в OleContainer.Как это сделать?
Говорят что это можно решить с помощью потоков?

Точнее говоря я не знаю синтаксис языка применительно к потокам :(

Добавлено: 20 сен 2005, 15:51
Naeel Maqsudov
Нет никакого такого синтаксиса языка.

var
S:TMemoryStream;
......
S:=TMemoryStream.Create;
......

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

Вот примерно так.

Если не разберетесь - пришите, может кто-то подскажет конкретнее (или я сам :) доберусь до Delphi).

Добавлено: 22 сен 2005, 23:13
YurikGL
>Возможно, в DataSource есть подходящее событие

Обычно пользую DataSource2DataChange

По сабжу - наиболее логичный и простой способ - сохранять ole-документ на диск и открывать его с диска. Потоки здесь городить ни к чему.

Но я крайне не советую идти путем "передвинули курсор - отобразили новый документ" т.к. система будет мягко говоря тормозить. Лучше окрывать документ по требованию.