Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Corba";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Вниз

Откр. файлов Word и Excel. Раннее, позднее связывание или OLE   Найти похожие ветки 

 
Dmitrich   (2005-09-14 16:53) [0]

Здравствуйте уважаемые мастера. Очень нужна ваша помощь. Ситуация такая: есть БД (InterBase), в которой хранятся полностью вордовские и экселевские файлы. При необходимости нужно эти документы открывать. Как это сделать без сохранения на HDD???
Частично это можно решить с помощью TOleContainer т.к. там есть загрузка из потока LoadFromStream, но мне нужно чтобы документ открывался не в моём приложении!

Спасите меня! Скоро сдавать заказчику. Заранее спасибо.


 
Dmitrich   (2005-09-14 22:08) [1]

Никто не знает?


 
dmitry501 ©   (2005-09-15 05:59) [2]

из контейнера скопируй в буфер обмена, а потом вставь  в чужое приложение.
p.s. А чем временные файлы не устраивают?


 
Dmitrich   (2005-09-15 11:59) [3]

Клиент придирчивый! А как в контейнер загрузить Stream? Поток записываю нормально SaveToSream(stream), а при загрузке LoadFromStream(Strream) ругается. Я использовал и TFileStream и TMemoryStream, и просто TStream. Ничего не помогает


 
dmitry501 ©   (2005-09-15 12:52) [4]

Подробнее можно? Как ругается? На что? Кусочек кода где ругается....
Клиент так и написал, что временных файлов быть не должно? Странно как-то.... Обычно на любой Windows есть %temp%, куда нужно и писать эти самые файлы. Кроме того, и Word и Excel сами делают временные файлы- заказчик возражать не будет? :)


 
Dmitrich   (2005-09-15 20:42) [5]

Для Клиента эти файлы имеют большую важность и он не хотел бы чтобы их можно было просто скопировать так простые файлы (Хотя это можно сделать простым Сохранить как..., но я не спорю). Для этого и делается БД. Можно конечно использовать и временные файлы, но для этого одним не ободёшься. Лучше всё делать через поток. А дело вот в чём:

Имеется поток S. (Пробывал и TStream, и TFileStream, и TMemoryStream):

...
var
 S:TMemoryStream;
..
// имеем загруженый Ole
 Form1.OleContainer1.CreateObjectFromFile("c:\1.doc",false);

//  Зоздаём поток и кидаем туда документ из OLE, в дальнейшем он будет
//  сохранён в БД
 s:=TMemoryStream.Create;
 Form1.OleContainer1.SaveToStream(s);
 Form1.OleContainer1.DoVerb(ovShow);
..
// Здесь всё хорошо, а при загрузке начинается
// (S даже не сохраняясь в ДБ):
Form1.OleContainer2.LoadFromStream(s);

Ошибка:Stream read error

Я уже не знаю что делать!!!!!!!!!!!!!!!



Страницы: 1 вся ветка

Форум: "Corba";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.073 c
15-1164687154
DelphiN!
2006-11-28 07:12
2006.12.17
Отключить использование Proxy сервера в компоненте TWebBrowser


6-1153722888
Chelovek
2006-07-24 10:34
2006.12.17
Сенрвер TelNet.


3-1160382157
O.O
2006-10-09 12:22
2006.12.17
Формат даты в FireBird


15-1164606305
Тульский
2006-11-27 08:45
2006.12.17
Кидалово с жильем


2-1164961272
Alex_C
2006-12-01 11:21
2006.12.17
Как пищать динамиком?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский