Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать OLE обект из БД в OleContainer 
:(
    Опции темы
Upgrader
Дата 22.3.2010, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 28.8.2007

Репутация: нет
Всего: нет



Здравствуйте!
В БД Access, в одном поле есть OLE объект. Допустим rtf файл или что-либо еще, не так важно.

У меня такой вопрос - как загрузить этот объект в своей программе в компонент "OleContainer1"?

Подключаюсь к базе используя ADOConnection и ADOTable. Как работать с БД знаю, только не понял как получить OLE объект.

Пытался вот так:
Код

OleContainer1.LoadFromFile(ADOTable1.Fields[2]);
Но понятно что тут что-то не так. И на счет типа данных не в курсе.
А как надо, подскажите?
PM MAIL WWW   Вверх
Grag
Дата 23.3.2010, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.12.2007
Где: Красноярск

Репутация: нет
Всего: нет



Цитата(Upgrader @ 22.3.2010,  20:49)
Здравствуйте!
В БД Access, в одном поле есть OLE объект. Допустим rtf файл или что-либо еще, не так важно.

У меня такой вопрос - как загрузить этот объект в своей программе в компонент "OleContainer1"?

Подключаюсь к базе используя ADOConnection и ADOTable. Как работать с БД знаю, только не понял как получить OLE объект.

Пытался вот так:
Код

OleContainer1.LoadFromFile(ADOTable1.Fields[2]);
Но понятно что тут что-то не так. И на счет типа данных не в курсе.
А как надо, подскажите?

Дублирую тебе свой ответ с "Исходников"...
Код

var

b: TADOBlobStream;


begin
  b := TADOBlobStream.Create((Table1.FieldByName('XXXXXX') as TBlobField),bmRead);
  OLEContainer1.LoadFromStream(b)
end



PM MAIL ICQ Skype   Вверх
Upgrader
Дата 24.3.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 28.8.2007

Репутация: нет
Всего: нет



Цитата(Grag @ 23.3.2010,  17:35)
Дублирую тебе свой ответ с "Исходников"...

Не получается. Тут я с самого начала более правильно написал вопрос, думал может кто что-то другое подскажет  smile 

Если добавляю объект в БД из программы Access, все нормально.
Но при попытке прочитать этот файл:
TADOBlobStream.Create((Table1.FieldByName('XXXXXX') as TBlobField),bmRead);
он читается, но как выяснил - он немного изменен. Что-то добавлено что-ли Access`ом. По этому ни в какой программе этот файл уже больше не откроется.

По моему в этом вся проблема. Хотя возможно и нет...

Никто не решал такой вопрос?
PM MAIL WWW   Вверх
Grag
Дата 24.3.2010, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.12.2007
Где: Красноярск

Репутация: нет
Всего: нет



Вот кусочек моей рабочей программы. Выводит картинку из ячейки БД в форму About...
Код


type
  TAboutForm = class(TForm)
  MainPicture: TcxImage;

procedure TAboutForm.FormCreate(Sender: TObject);

var
    Jpeg: TBitmap;
  Blob: TADOBlobStream;
  
begin
    Jpeg:=TBitmap.Create;
    Blob:=TADOBlobStream.Create(MainFrm.tbControl.FieldByName('Pic') as
                                                             TBlobField,bmRead);
  Blob.Seek(82, soFromBeginning);
  Jpeg.LoadFromStream(Blob);
  MainPicture.Picture.Graphic:=jpeg;


PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.