Главная страница
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.043 c
6-1090148743
mrGrey
2004-07-18 15:05
2004.09.26
Автозаполнение.


14-1094329805
Viking
2004-09-05 00:30
2004.09.26
Практичный программист - ???


14-1094542966
TUser
2004-09-07 11:42
2004.09.26
Крутые крякеры?


14-1093800846
KilkennyCat
2004-08-29 21:34
2004.09.26
Давно мечтал стать писателем. Вот, мой первый рассказ. Критикуйте


14-1094705445
DSK
2004-09-09 08:50
2004.09.26
Как компонент сделать прозрачным?,наследник TWinControl