![]() |
|
![]() ![]() ![]() |
|
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
Привет всем!
Может кто знает как загрузить данные из BLOB-поля в OLEContainer? Доступ к данным осуществляется через TADOQuery. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
ADOQuery имеет возможность чтения поля в поток Stream, а то чего у вас там в контейнере должно понимать работу с потоками, или иметь какие-то методы для работы с данными. Вообще-то вопрос достаточно странный, типа: " у меня есть мешок, как мне включить то что находится в мешке?" - ответ, "а хрен его знает" - зависит от того что засунуто в мешок... Контейнер он и есть контейнер, а реальная функциональность его содержимого зависит от самого содержимого.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
ADOQuery имеет возможность чтения в поток TADOBLOBStream
TOLEContainer умеет работать с потоками типа TStream, а также умеет загружать данные из файлов, но опять же через TFileStream Именно так, вопрос не в том как запустить (включить) содержимое, вопрос в том, как это содержимое правильно поместить/ загрузить в контейнер (т.е. сделать данные из БД содержимым контейнера). Почему-то TADOBLOBStream и TStream имеют различный формат (насколько я понял)... ![]() |
|||
|
||||
Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Все они наследники TStream Ну теперь то задача хоть понятна
Формат самих данных одинаков, они оба наследуются от одного предка. На вскидку, если проблема только в этом, то можно просто иметь 2 потока и копировать из одного в другой. А если не на вскидку, то TOLEContainer имеет метод LoadFromStream который требует абстрактный TStream, а значит будет принимать любого потомка TStream, в том числе и TADOBLOBStream -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
Это в теории, а на практике следующий код не работает:
и еще раз, повторюсь, из-за различного формата данных. |
|||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 2 Всего: 83 |
Spike, грузи поток либо в визуальный TImage, либо в TBitmap для дальнейших действий.
-------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
||||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 2 Всего: 83 |
Для чего тебе загружать в OLEContainer?
-------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
Golden Hands, а разве в BLOB можно хранить только картинки? я вот хочу хранить там документы word, excell, да и вообще любые... Вот и нужен для этого TOLEConteiner. Конечно, это может быть в корне не верный подход
![]() |
|||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 2 Всего: 83 |
Напиши уже наконец, какую СУБД используешь.
MS Access поди? ![]() -------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
Блин, забыл ![]() ![]() |
|||
|
||||
Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 2 Всего: 83 |
Если данные заносились через MS Access, то смотри тут:
http://forum.shelek.com/index.php?action=p...ge;topic=7620.0 http://www.sql.ru/forum/actualthread.aspx?...&tid=240912 Проблема заключается в получении "чистого" формата файла, то есть отсекании "левой" инфы, которую пихает Access. Например, для BMP-изображений:
А вот какую поправку делать на остальные форматы файлов - известно наверное только Microsoft. А загрузку в OleContainer "чистого" файла тоже не смог реализовать... -------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
||||
|
||||
DDX |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 31.1.2005 Где: Москва Репутация: 5 Всего: 5 |
Spike,
загрузка в BLOB- поле MSAccess ( поле q_blob таблицы adtQuestion) из OLEContainer (oleQuestion)
загрузка содержимого BLOB-поля в OLEContainer
--------------------
Учиться, учитьcя и ещё раз учиться |
||||
|
|||||
Spike |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 5.7.2005 Где: Протвино МО Репутация: нет Всего: 1 |
сделал так:
работает. Спасибо всем! Но вопрос с микрософтовским форматом не снимается, если кто встретит - киньтесь ссылкой. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |