Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Не подскажите с переносом данных?   Найти похожие ветки 

 
1008 ©   (2004-09-08 16:26) [0]

Мне необходимо перенести содержимое BLOB-поля в документ Word. Советуют использовать OleVariant, но я не знаю как в OleVariant поместить содержимое BLOB-поля (tmp:OleVariant; ... tmp:=CreateBlobStream(FieldByName("Data"), bmRead); не работает).


 
Суслик ©   (2004-09-08 16:27) [1]

а что это за содержимое?
просто файл вордовского документа?
если да, то сохрани его на диске, потом открой.

может еще как можно...


 
1008 ©   (2004-09-08 16:30) [2]

Суслик ©  (08.09.04 16:27) [1]

Хуже, намного, это коктейль содержимое которого заранее не известно. Может содержать: OLE-объекты, картинки, текст.


 
1008 ©   (2004-09-08 17:26) [3]

Может кто-нибудь подскажет как в OleVariant поместить TStream? Или можно ли в OleVariant поместить содержимое RichEdit?


 
1008 ©   (2004-09-09 11:07) [4]

Никто не встречался?


 
Cobalt ©   (2004-09-09 11:13) [5]

Рассмотри ситуацию по всем составляющим:
1) Получение данных из Word (скорее всего, это будут двоичные данные какие-то) - рекомендую начать с этого.
2) Сохранение этих данных в поле BLOB
3) Получение данных из поля BLOB
4) Помещение этих данных в Word


 
1008 ©   (2004-09-09 11:25) [6]

Cobalt ©  (09.09.04 11:13) [5]

Word всего лишь используется для создания отчёта. Итак:
Есть редактор RichEdit (JvxRichEdit), который позволяет вставлять картинки и Ole-объекты. Как OLE-контейнер, только это можно ещё параллельно с текстом давать.
Из этого редактора данные при помощи потока переносятся в BLOB-поле базы данных (тут проблема нет.
Из BLOB-поля базы данных я могу перенести данные в RichEdit (тоже проблем нет).
При формировании отчёта люди хотят, чтобы данные из базы, которые хранятся в BLOB-поле, появлялись в отчёте, который я составляю в Word-е. Но вот тут возникает проблема: как это делать?
Одно из решений это тупо перегонять из BLOB в RichEdit, а затем используя ClipBoard вставлять в Word-документ. Это работает, но это "не красивый стиль программирования", а во-вторых существует опасность, что в этот же момент кто-то заполнит буфер своими, важными для него данными, которые потом будут вставлены вместо необходимых для отчёта данных, либо эти важные данные будут утеряны, а вместо них пользователь получит часть отчёта.
Второе из решений было сказано вскользь и как его реализовать я даже не представляю: через переменную OleVarint типа. В этом случае я получу "красивую" передачу данных, но как это реализовать я не знаю.


 
1008 ©   (2004-09-09 13:34) [7]

?



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
3-1093668134
Rost
2004-08-28 08:42
2004.09.26
работа с access


1-1095136160
Faeton08
2004-09-14 08:29
2004.09.26
TPageControl


6-1090447381
Skyhawk
2004-07-22 02:03
2004.09.26
Как зайти в систему на удаленном компьютере


8-1088781061
Epifun
2004-07-02 19:11
2004.09.26
Громкость в Windows


1-1094711126
EthernalWonderer
2004-09-09 10:25
2004.09.26
Перехват клавиши мыши, когда курсор над любым элементом окна