|
|
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Что-то не найду никак... Есть [Таблица], в ней [Поле] ("Поле объекта OLE"). В нем живет word'овский документ. Можно ли открыть word с этим документом, не создавая временного файла и не используя для этого форм? Цели сохранить изменения, сделанные в word'е, обратно в поле не стоит. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 23:14:20 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
А дубель-кряк по этому полю разве делает не это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2004, 23:29:35 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Хочется программно, не используя при этом форм и временных файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 00:42:21 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
хто база (MS SQL или мдб) через что планируется доступ (ДАО или АДО) и ПОЧЕМУ без форм и файлов??????? Думаю, СОВСЕМ без файлов не обойтись. Особенно, если хранятся именно доки и именно в двоичном вордовом оле формате - с разделами, вложенными доками и картинами. Для простых текстов можно просто вставлять содержимое в (новый) док из stream или задействовать getChunk (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 01:17:44 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
хто база (MS SQL или мдб) mdb через что планируется доступ (ДАО или АДО) DAO и ПОЧЕМУ без форм и файлов??????? Хочу часть отчетов хранить в базе, и формировать их в ворде. Сохранять при этом их не требуется. Обрабатывать паровоз возможных ошибок при работе с файлами (файл уже есть, файл не получается удалить, файл не успел удалиться, трам-пам-пам) нет никакого желания. И таскать дополнительную форму из программы в программу тоже неудобно. :( Для простых текстов можно просто вставлять содержимое в (новый) док из stream или задействовать getChunk А вот здесь поподробнее можно? Как в новый док из stream класть данные? Или это имеется в виду именно текст вообще без форматирования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 09:38:14 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Посмотри по этому адресу Практическая работа с Word. Хотя статья предназначена для начинающих, надеюсь, что и более опытные программисты найдут в ней кое-что полезное. Например, работу с Word без файлов на диске. http://hiprog.com/access/article.asp?id=379 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 10:51:02 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 10:56:10 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Но это через форму. Не то. Так я умею. Форму не надо (во всяком случае пока жива надежда на возможность обойтись без нее)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 11:02:08 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
те как без формы не понятно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 11:09:50 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Есть Код: plaintext Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 11:15:45 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Так приравнять переменные скорее всего не получится, подозреваю у них разный формат объекта. Если же насильно переопределить, то возможны всяческие глюки. Если чрез файл не хочется, то можно таки через форму. Но форму не сохранять и не показывать. Вот код, правда для Excel (Word хуже знаю). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 15:24:13 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
2Олл Чем дальше, тем страшнее. В случае с временными файлами: Поскольку других способов я не нашел, стал делать через файл. Мышой кладу в OLE-поле файл Word размером 40 кб. Затем пытаюсь сохранить его на диск посредством GetChunk. Оказывается, что FieldSize у этого поля порядка 80 кб. Естественно, открыть такой файл не получается. Можно, конечно, класть файл в базу посредством AppendChunk, но это не удобно, хочется оставить себе возможность редактировать эти отчеты прямо из Access, не делая лишних движений. Кроме того, в заголовке ворда вылезает тем более корявое название, чем более страшное имя я даю временному файлу. Но по сравнению с предыдущим это неважно. В случае с использованием контрола OLE: При Action = acOLEActivate Word сразу становится Visible, вне зависимости от того, был ли он до этого загружен в память с установкой visible=false, или нет. Это неудобно - либо лишнее моргание пользователю при подготовке отчета: Код: plaintext 1. Как победить хоть что-нибудь из этого? 2СtrlAlt Аналогично, и, кроме того, форму все равно придется делать заранее, иначе эта программа не будет работать в mde. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 15:35:38 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Сейчас еще попробую http://www.sql.ru/forum/actualthread.aspx?tid=17943 , но это сразу и "дополнительная форма" и "временный файл", то есть совершенно противоположный желаемому способ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 15:38:55 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
2 Geo Вот поэтому я никогда не работаю с OLE в аксесе. Всё время использую BLOB поля - и проблем не знаю. Пользователи просто после редактирования в ворде указывают путь к файлу в аксесе для сохранения изменений и всё... Да, неудобнее чем в ОЛЕ в Аксесе, зато легко переносимо на НЕТ:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 15:46:03 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Я тоже OLE не использую. Глючное оно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 16:06:24 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
2 Geo не надо ОЛЕ оно много места жрет, глючное заливай файлы целиком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 16:41:15 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Вероятно, вы правы. Так и буду делать. Спасибо всем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2004, 20:25:14 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
апаздал. день был плохой, а понеделник будет еще хуже... ((;;; Geo Или это имеется в виду именно текст вообще без форматирования? Да. Касательно собственно изначальной постановки - рабочих "советов" у меня нет. Если ослабить требование на недопустимость временного файла, то близким к запрошенному выглядит такой вариант - вставить файл без установления связи, после чего удалить временный файл. с пропуском доступа к базе и с точностью до обработки ошибок: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Geo mdb DAO тохды чанки... Geo Хочу часть отчетов хранить в базе, и формировать их в ворде. не поняль... тут как бы две задачи в одной можно вычитать. 1) документохранилище - хранить в виде документов Word сформированные отчеты как "твердые электронные копии". 2) документ Ворд как описатель (и, возможно - приложение Ворд как конструктор) отчета, по которому некий механизм исполнения будет строить отчет. все-таки любопытно - куда рулить будешь? Geo Сохранять при этом их не требуется. Обрабатывать паровоз возможных ошибок при работе с файлами (файл уже есть, файл не получается удалить, файл не успел удалиться, трам-пам-пам) нет никакого желания. И таскать дополнительную форму из программы в программу тоже неудобно. :( форма, как видно, не потребуется. А кое-что про ошибки все-таки придется. Но не страшный паровоз.... ЗЫ щё раз пардону за влезание в закрытый топик... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2004, 02:17:50 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Victoshaне поняль... тут как бы две задачи в одной можно вычитать. 1) документохранилище - хранить в виде документов Word сформированные отчеты как "твердые электронные копии". 2) документ Ворд как описатель (и, возможно - приложение Ворд как конструктор) отчета, по которому некий механизм исполнения будет строить отчет. все-таки любопытно - куда рулить будешь? Нужно 2) - в базе живет шаблон отчета, который, при наличии достаточных прав, пользователь может изменять, придерживаясь определенных правил, чтобы программа потом могла этот шаблон заполнить. Сложный генератор мне не нужен, пока делаю для простых отчетов с небольшим количеством данных, которые проще сделать в ворде, чем в Access. Хотелось для наглядности отображать эти шаблоны при просмотре/редактировании (именно шаблоны, а не сами отчеты) в OLE-полях, а формировать уже в ворде. Но как-то не получается. Поэтому сделал, как подытожил АлексейК - в базе живут шаблоны, вставленные не посредством оле-полей, а залитые из файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2004, 17:13:14 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
кажется, поняль... думаю, приведенный мной код не пригодится за ненадобностью. (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2004, 19:48:47 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Попутно еще вопрос родился. Помогите малограмотному. Сел перечитывать, что я вчера наковырял: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Это работает, но я не понимаю, почему. Размер файла не кратен размеру буфера (буфер 32 кб, а файл 40 кб). Почему акцесс правильно читает файл? У него в байтовом массиве где-то хранится количество заполненных элементов, или что? Т.е. я бы понял, если б он со строкой так работал, но для строки, видимо, концом у него является нуль-символ или аналог, если в этом тексте заменить массив на строку, то читается (и записывается) небольшой кусок от необходимых 40 килобайт. А в массив-то они куда заполненность прикрутили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2004, 14:41:40 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
хотя вру... При чтении файла поле заполняется неправильно, как и ожидалось, размер его после выполнения вышеуказанного кода кратен 32 килобайтам. Это я поправил, а почему при записи в файл из поля его размер получается правильным?? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2004, 15:34:11 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Geoхотя вру... При чтении файла поле заполняется неправильно, как и ожидалось, размер его после выполнения вышеуказанного кода кратен 32 килобайтам. Это я поправил, а почему при записи в файл из поля его размер получается правильным?? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. патамушта F1= F1 DAO360.chm GetChunk The data that a GetChunk call returns is assigned to variable. If Size is greater than the remaining data, the GetChunk method returns only the remaining data without padding variable with empty spaces. If the field is empty, the GetChunk method returns a null value. В переводе на русский это означает, что инициализация массива в твоем коде не нужна - GetChunk всегда возвращает указатель на НОВЫЙ массив. иметь ввиду два обстоятельства 1) если читаешь "поле мемо", то возвращать результат getchunk можно в строку. если поле "ОЛЕ", то ТОЛЬКО в байтовый массив. 2) GetChunk глючит, если используется на рекордсете, образованном на запросе с группировкой - http://support.microsoft.com/default.aspx?scid=kb;en-us;250640 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2004, 16:58:58 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
авторпатамушта F1= Благодарствую :) Все работает, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2004, 17:06:57 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
еще замечание если размеры файла/поля не слишком велики - читай все за раз- Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. То ли придумалось, то ли вспомнилось - по совокупности затрат для А97 на "всем старом" встречалась рекомендация в 8 кб (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2004, 17:07:40 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Geo авторпатамушта F1= Благодарствую :) Все работает, спасибо. так не за что - оно же и работало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2004, 17:09:51 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Victoshaесли размеры файла/поля не слишком велики - читай все за раз- Код: plaintext 1. 2. а97, ленясь писать параметры шанка, в вин2к нормально гружу и выгружаю 57к ёкселя или 64к ворда (больше пока не надо - и так уже по 3 страницы). С чем это связано (на что я должен таки напороться, не прописывая явно размер шанкра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 14:13:01 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
Попробовать бы надо. Предполагаю, на возможную нехватку памяти при работе с документами, размер которых сравним с размером физической памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 16:58:59 |
|
||
|
Как открыть Word для просмотра содержимого OLE?
|
|||
|---|---|---|---|
|
#18+
ёксельман <...> на что я должен таки напороться, не прописывая явно размер шанкра? В действительности - не знаю. Думаю, что если ты не программируешь на дельфях, то в очень широких пределах - возможно до сотен мегабайт ни на что серьёзное. (кроме активного свопа) Возможно - это "устаревшая тема". ( ) Мне почти не приходилось пользоваться чанками, и совсем не приходилось работать с блобами реально большого размера. И детали темы для меня в тумане. Желание же "стабилизировать" размер происходит примерно из следующих соображений. Кроме буфера приема чанка в памяти приложения потребуется буфер выборки заказанной порции в БД и буфер возврата. Возможно помноженный на два в случае клиентского курсора. Потребная память в на весь блоб в клиенском приложении все равно может оказаться израсходованной - это функция реализации, которой я не знаю - не очевидно что за это МОЖНО бороться. А вот размер "базовых" буферов может оказать существенное влияние на время блокировки страницы/удельную скорость чтения из поля и тд То есть - concurrency может оказаться сильно зависимым от величины "стандартного" размера чанка. Интуитивно представляется, что вероятность разрушения базы меньше, если элементарная операция обращения к ней короче по времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2004, 19:34:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1671329]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 361ms |

| 0 / 0 |
