![]() |
![]() |
![]() |
|
Нужно хранить и открывать картинку, файл office и т.п. | ☑ | ||
---|---|---|---|---|
0
terr
06.03.12
✎
05:37
|
Добрый день,
У меня в БД есть РС, в котором для каждого документа может храниться несколько его скан-копий и вообще, файлов, ассоциируемых с данным документом БД. Измерения: - Документ (тип ДокументСсылка) - Номер (тип Число Целое) Ресурсы: - Хранилище (тип ХранилищеЗнач) База распределенная, поэтому имеет смысл хранить не ссылки на файлы, а в хранилище запихивать сами файлы с возможностью извлекать их и открывать. Когда-то там лежали только картинки и вопросов не возникало. Сейчас же в хранилище значений надо запихивать и документы Microsoft Office и возможно, понадобится вообще хранить любые документы, которые могут быть открыты из-под винды. В момент выбора файла я смотрю его расширение и в хранилище кладу либо новый Картинка (имяФайла), если расширение входит в список расширений картинок, либо новый ДвоичныеДанные(имяФайла), если это расширение входит в список расширений Office С хранением разобрались. Теперь что касается просмотра Я могу определить ТипЗнч ресурса полученной записи - картинка или двоичные данные. С картинкой вопросов нет. А вот как и чем открыть двоичные данные? Т.е. мне надо определить - что это за тип файла там и каким-то образом вывести на экран. Подскажите, пожалуйста, как это возможно? |
|||
1
catena
06.03.12
✎
05:41
|
ЗапуститьПриложение(ДвоичныеДанные);
? |
|||
2
terr
06.03.12
✎
06:00
|
Конечно нет! Для запуститьПриложение параметром должна быть строка, а не двоичные данные!
|
|||
3
Wobland
06.03.12
✎
06:02
|
(2) наверное, надо базе как-то знать, что за данные там лежат. как вариант: хранить расширение, потом создавать временный файл с этим расширением и запускать, а?
|
|||
4
terr
06.03.12
✎
06:02
|
ну вот я сейчас так и сделал. Блин так врем. файл создавать неохота =)
|
|||
5
Wobland
06.03.12
✎
06:03
|
(4) ну заведи константу КаталогНевременныхФайлов ;)
|
|||
6
terr
06.03.12
✎
06:04
|
а других способов, кроме физического создания файла нет? даже если просто ворд-эксель и не будет иных файлов?
|
|||
7
Wobland
06.03.12
✎
06:06
|
(6) подключаться к ворду по оле, держа данные в памяти разбирать формат и писать прямо в ворд?
|
|||
8
terr
06.03.12
✎
06:34
|
=)
cпасибо |
|||
9
Рэйв
06.03.12
✎
06:50
|
(6)Как вариант - втавить на форму ActiveX офисный и попробовать в него предевать.Правда сам не пробовал, но может получиться
|
|||
10
andrewks
06.03.12
✎
08:07
|
(9) плохая идея в свете "и возможно, понадобится вообще хранить любые документы, которые могут быть открыты из-под винды. "
(6) а чем тебе временные файлы мешают? |
|||
11
catena
06.03.12
✎
17:37
|
(2)Ну, я не имела в виду именно двоичные данные, создать временный файл и открыть.
Вообще, вот тут есть несколько идей: Книга знаний: v8: Хранение в хранилище обработок и файлов. Определение типа хранимого файла |
|||
12
H A D G E H O G s
06.03.12
✎
17:46
|
На самом на деле работа с файлами на порядки быстрее всяких COM. Например из за кэширования.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |