Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Access OLE - stream - RichEdit, Access OLE - stream - RichEdit  
V
    Опции темы
A5uKa
Дата 22.4.2009, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Access OLE - stream - RichEdit 

связка .

Ошибка . Что-то не так делаю ... Всё в рисунке -

user posted image

Это сообщение отредактировал(а) A5uKa - 22.4.2009, 10:35

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  11111.jpg 115,10 Kb
PM   Вверх
mrbrooks
Дата 22.4.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



A5uKa, есть мнение - что нужно выделить память
Код

TStream stream = new TStream();

и соответственно ее освободить по необходимости. Рекомендую std::auto_ptr.
PM MAIL   Вверх
A5uKa
Дата 22.4.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



не понимаю...

Цитата

TStream stream = new TStream(); 

такую запись не даёт использовать

с 
Код

TStream *stream=new TMemoryStream();

ошибки нет , но всёравно не записывает (поле также пустое)

... можно подробнее ? что куда ...

std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
вот тут пмс это stream ? нет ... 
тут
Цитата

[BCC32 Error] MainC.cpp(183): E2285 Could not find a match for 'TStrings::SaveToStream(std::auto_ptr<TMemoryStream>)'

PM   Вверх
mrbrooks
Дата 22.4.2009, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(A5uKa @  22.4.2009,  11:02 Найти цитируемый пост)
не понимаю...

хм. ну могла бы догадаться, где я ошибся  smile 

Код

TStream *stream = new TStream(); 


так не пойдет
Код

TStream *stream=new TMemoryStream();
  smile 


Цитата(A5uKa @  22.4.2009,  11:02 Найти цитируемый пост)
std::auto_ptr<TMemoryStream> pms(new TMemoryStream);

здесь pms - указатель на TMemoryStream  smile 
доступ к этому указателю в методе SaveToStream через pms.get(),
то бишь
...->SaveToStream(pms.get());

Это сообщение отредактировал(а) mrbrooks - 22.4.2009, 11:13
PM MAIL   Вверх
A5uKa
Дата 22.4.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Наверное у меня руки кривые но

на 
Цитата

TStream *stream = new TStream(); 

Цитата

[BCC32 Error] MainC.cpp(180): E2352 Cannot create instance of abstract class 'TStream'


пытаюсь так  smile 
Код

std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
TStream *stream=pms.get();


но опять нет результата smile
PM   Вверх
mrbrooks
Дата 22.4.2009, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(A5uKa @  22.4.2009,  11:23 Найти цитируемый пост)
Наверное у меня руки кривые но

нет все верно. TStream абстрактный класс со всеми вытекающими от сюда следствиями. Был не прав. Не доглядел. 

Я бы делал так:
Код

std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
//TStream *stream=pms.get(); - это здесь зачем?
RE->Lines->SaveToStream(pms.get());



PM MAIL   Вверх
A5uKa
Дата 22.4.2009, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



А как дальше это в ОЛЕ сохранить ?

Код

stream = TREE->CreateBlobStream(TREE->FieldByName("DATA"), bmWrite);

PM   Вверх
mrbrooks
Дата 22.4.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(A5uKa @  22.4.2009,  12:48 Найти цитируемый пост)
А как дальше это в ОЛЕ сохранить ?

что - то вроде этого:

Код

std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
RE->Lines->SaveToStream(pms.get());
TSream *bf = TREE->CreateBlobStream(TREE->FieldByName("DATA"), bmWrite);
bf->CopyFrom(pms, pms->Size);


 В Аксессе (и не только) можно сохранять достаточно просто, через создание полей таблицы через редактор. 
И далее так:

Код

std::auto_ptr<TMemoryStream> pms(new TMemoryStream);
RE->Lines->SaveToStream(pms.get());
ПолучившеесяOLEПоле->Assign(pms.get());


и все smile

Это сообщение отредактировал(а) mrbrooks - 22.4.2009, 13:22
PM MAIL   Вверх
A5uKa
Дата 22.4.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Код

TREE->FieldByName("DATA")->Assign(pms.get());


Код

[BCC32 Error] MainC.cpp(196): E2034 Cannot convert 'TMemoryStream *' to 'TPersistent *'



//-----------------------------------------------------------------

к первому варианту 

Код

bf->CopyFrom(pms, pms->Size);


тут вот так наверное get() ато ошибка...

пробую...]

Не фурычит ...

user posted image

 smile 

Это сообщение отредактировал(а) A5uKa - 22.4.2009, 13:33
PM   Вверх
mrbrooks
Дата 22.4.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



A5uKa, я же написал что нужно поля создать через редактор компонента. Так как ты сделала - ничего не выйдет. Пробуй первый способ.
PM MAIL   Вверх
A5uKa
Дата 22.4.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



как 
Цитата

нужно поля создать через редактор компонента


при нажатии на fields говорит missing data or master source   smile 
PM   Вверх
mrbrooks
Дата 22.4.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(A5uKa @  22.4.2009,  13:38 Найти цитируемый пост)
при нажатии на fields говорит missing data or master source

Что юзаешь Table или Query?
PM MAIL   Вверх
A5uKa
Дата 22.4.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



table  smile 

Это сообщение отредактировал(а) A5uKa - 22.4.2009, 14:15
PM   Вверх
mrbrooks
Дата 22.4.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



A5uKa, ясно. поля создаются следущим образом.
Щелкаешь по своему Table два раза левой клавишей мыши. Появится редактор. В нем уже правой клавишей, но один раз - выбираешь Add fields. Все - появится поля ассоциируемые с полями твоей таблицы. Среди них будет и поле связанное с Bloob. И уже это поле связывай по второму методу с созданным потоком.

Добавлено через 2 минуты и 33 секунды
Допустим блоб-поле называется DATA, а таблица Table - тогда будет создано TableDATA.
PM MAIL   Вверх
A5uKa
Дата 23.4.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

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



Выдаёт туже ошибку
Код

[BCC32 Error] MainC.cpp(196): E2034 Cannot convert 'TMemoryStream *' to 'TPersistent *'


хотя поле ftBlob
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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