Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS SQL + ADOTable + doc файлы 
:(
    Опции темы
YurikGL
Дата 22.10.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 5.7.2005
Где: Уфа

Репутация: нет
Всего: 2



Цитата
MSWord.Selection.Copy;//Копируем кусок в буфер
RichEdit1.PasteFromClipboard();//Вставляем куда нужно, папример в RichEdit


Крайне не советую использовать буфер обмена т.к. у пользователя там могло что-нибудь лежать.

Цитата
Зачем дуть базу, можно хранить в ней только ссылки на файл, а затем запускать файлы по ссылкам. Но это не удобно тем, что придется таскать файлы за собой.

Это часто нужно для создания единой системы разграничения прав в базе данных.

Автору: Работа с документами ворд в смысле помещения их в БД ничем не отличается от помещения других двоичных данных в БД. Теперь по поводу открытия документов ворда из базы или записи их в БД, наиболее корректный вариант ИМХО - работа через файлы (уже упомянутая kirilllius). Сначала сохранем из базы на винт, потом открываем во ворде или сначала сохраняем на винт из ворда а потом записываем в базу.


PM MAIL WWW ICQ   Вверх
offline
Дата 22.10.2005, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



Цитата
kirilllius: Как в Delphi c помощью Word-а (WordDocument или WordApplication) просмотреть doc-файлы, которые хранятся в блоб-полях. Заранее спасибо.


Если файл записан в блоб поле через TMemoryStream, то вот как его прочитать

Код

procedure TForm1.Button1Click(Sender: TObject);
var
 Potok : TMemoryStream;
begin
 try
  Potok := TMemoryStream.Create;
  TBLOBField(ADOTable1.FieldByName('Blob_поле')).SaveToStream(Potok);
  Potok.Position := 0;
  Potok.SaveToFile('C:\Temp.doc');
  ShellExecute(Handle, 'open','C:\Temp.doc',nil,nil,SW_SHOWNORMAL);
 finally
  Potok.Free;
 end;
end;

PM MAIL   Вверх
offline
Дата 26.10.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



Цитата

но когда я редактирую и закрываю документ, запрашивает о сохранении. Нажимаю Ок, но изменение нигде не сохраняется, ни в базе, ни в оригинале (в самом документе).


Итак
1 мы считываем и сохраняем данные в файл C:\Temp.doc Поэтому когда ты после редактирования нажимаешь кнопку принять изменения, то они вносятся именно в файл C:\Temp.doc а ни в какой другой. Чтобы эти изменения сохранились в базу, то тебе нужно этот файл C:\Temp.doc опять через поток сохранить в Блоб поле. Сам фай туда не сохранится.
2 чтобы сохранить файл в блоб поле есть два варианта легкий и тяжелый.
легкий - это кинуть кнопочку на форму по нажатию на которой будет выбранный или определенный файл записываться в блоб поле.
тяжеллый - это создание процесса. т.е. создаешь прощесс, запускаешь ворд, редактируешь файл, закрываешь Ворд, процесс конотолирует Водд и как только процесс завершается, то файл C:\Temp.doc записывается а блоб поле.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0944 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.