| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > OLE из BLOB |
| Автор: Spike 5.7.2006, 09:20 |
| Привет всем! Может кто знает как загрузить данные из BLOB-поля в OLEContainer? Доступ к данным осуществляется через TADOQuery. |
| Автор: Vit 5.7.2006, 16:38 |
| ADOQuery имеет возможность чтения поля в поток Stream, а то чего у вас там в контейнере должно понимать работу с потоками, или иметь какие-то методы для работы с данными. Вообще-то вопрос достаточно странный, типа: " у меня есть мешок, как мне включить то что находится в мешке?" - ответ, "а хрен его знает" - зависит от того что засунуто в мешок... Контейнер он и есть контейнер, а реальная функциональность его содержимого зависит от самого содержимого. |
| Автор: Vit 6.7.2006, 15:22 | ||||||
Все они наследники TStream
Ну теперь то задача хоть понятна
Формат самих данных одинаков, они оба наследуются от одного предка. На вскидку, если проблема только в этом, то можно просто иметь 2 потока и копировать из одного в другой. А если не на вскидку, то TOLEContainer имеет метод LoadFromStream который требует абстрактный TStream, а значит будет принимать любого потомка TStream, в том числе и TADOBLOBStream |
| Автор: Spike 7.7.2006, 10:00 | ||||
Это в теории, а на практике следующий код не работает:
и еще раз, повторюсь, из-за различного формата данных. |
| Автор: Golden Hands 8.7.2006, 01:47 |
| Spike, грузи поток либо в визуальный TImage, либо в TBitmap для дальнейших действий. |
| Автор: Spike 10.7.2006, 10:44 | ||
Не понял..., причем тут TImage и/или TBitmap? |
| Автор: Golden Hands 11.7.2006, 00:31 |
| Для чего тебе загружать в OLEContainer? |
| Автор: Spike 11.7.2006, 10:27 |
| Golden Hands, а разве в BLOB можно хранить только картинки? я вот хочу хранить там документы word, excell, да и вообще любые... Вот и нужен для этого TOLEConteiner. Конечно, это может быть в корне не верный подход |
| Автор: Golden Hands 11.7.2006, 22:32 |
| Напиши уже наконец, какую СУБД используешь. MS Access поди? |
| Автор: Spike 12.7.2006, 08:31 |
Блин, забыл |
| Автор: Golden Hands 13.7.2006, 00:01 | ||
| Если данные заносились через MS Access, то смотри тут: http://forum.shelek.com/index.php?action=printpage;topic=7620.0 http://www.sql.ru/forum/actualthread.aspx?bid=40&tid=240912 Проблема заключается в получении "чистого" формата файла, то есть отсекании "левой" инфы, которую пихает Access. Например, для BMP-изображений:
А вот какую поправку делать на остальные форматы файлов - известно наверное только Microsoft. А загрузку в OleContainer "чистого" файла тоже не смог реализовать... |
| Автор: Spike 13.7.2006, 09:03 | ||
ОНО т.е. по идее записав в blob-поле чистый файл, он должен запуститься без проблем, надо попробовать... |
| Автор: DDX 13.7.2006, 10:20 | ||||
| Spike, загрузка в BLOB- поле MSAccess ( поле q_blob таблицы adtQuestion) из OLEContainer (oleQuestion)
загрузка содержимого BLOB-поля в OLEContainer
|
| Автор: Spike 17.7.2006, 14:30 | ||
сделал так:
работает. Спасибо всем! Но вопрос с микрософтовским форматом не снимается, если кто встретит - киньтесь ссылкой. |