Форум: "Потрепаться";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизНе подскажите с переносом данных? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c