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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
кирил
Сообщения: 1
Зарегистрирован: 10 сен 2005, 15:26
Контактная информация:

Здравствуйте, помогите пожалуйста кто может!!!

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

Точнее говоря я не знаю синтаксис языка применительно к потокам :(
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Нет никакого такого синтаксиса языка.

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

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

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

Если не разберетесь - пришите, может кто-то подскажет конкретнее (или я сам :) доберусь до Delphi).
YurikGL
Сообщения: 142
Зарегистрирован: 16 фев 2005, 21:54
Откуда: Уфа
Контактная информация:

>Возможно, в DataSource есть подходящее событие

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

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

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