|
Нужно хранить и открывать картинку, файл 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. Например из за кэширования.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший