Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с BLOB-полями, Как сохранить изменения документа в БД 
:(
    Опции темы
НурболКазбеков
Дата 27.10.2005, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



У меня одна проблема . Мне надо было загружать вордовский документ с базы (это у меня получилось), но когда я редактирую и закрываю документ, запрашивает о сохранении (ну поидее так и должно быть). Нажимаю Ок, но изменение нигде не сохраняется, ни в базе, ни в оригинале (в самом документе).
Код проги таков:
procedure TForm2.Button2Click(Sender: TObject);
var
ptkwrd:Tmemorystream;
begin
try
ptkwrd:= Tmemorystream.Create;
tblobfield(ADO1ww).SaveToStream(ptkwrd);
ptkwrd.Position:=0;
ptkwrd.SaveToFile(''D:/Прога/W.doc'');
shellexecute(Handle, ''open'',''D:/Прога/W.doc'',nil,nil,SW_SHOWNORMAL);
finally
ptkwrd.Free;
end;
Кто сможет помочь smile , спасибо заранее. smile

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


Опытный
**


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

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



http://forum.vingrad.ru/index.php?showtopic=67193&st=15

там я дал подсказку ;)
PM MAIL   Вверх
offline
Дата 27.10.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А если не секрет, что ты с Вордом возишься? Можно же работать с Rich редактором и там создавать фотрмтированный текст как в Ворде, а про Ворд забыть.
PM MAIL   Вверх
НурболКазбеков
Дата 31.10.2005, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



kirillliusА ведь в RICH редакторе нельзя же сохранить рисунки или графики как ворде, ведь так или нет? smile
PM MAIL   Вверх
offline
Дата 31.10.2005, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Смотри бесплатную библиотеку RXLib
PM MAIL   Вверх
lotax
Дата 1.11.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуй использовать TOleContainer:

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  OleContainer1.InsertObjectDialog;
end;

const
  Signature:integer=-525465623;

procedure TForm1.Table1BeforeScroll(DataSet: TDataSet);
var
  Stream:TMemoryStream;
begin
  if OleContainer1.Modified then begin
    Stream:=nil;
    try
      Stream:=TMemoryStream.Create;
      Stream.Write(Signature,sizeof(Signature));
      if Assigned(OleContainer1.OleObjectInterface) then OleContainer1.SaveToStream(Stream);
      Stream.Seek(0,soFromBeginning);
      try
        Table1.Edit;
       TBLOBField(Table1.FieldByName('Graphic')).LoadFromStream(Stream);
        Table1.Post;
        OleContainer1.Modified:=False;
      except
        Table1.Cancel;
      end;
    finally
      if Assigned(Stream) then Stream.Free;
    end;
  end;
end;

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
var
  Stream:TMemoryStream;
  N:integer;
begin
  OleContainer1.DestroyObject;
  Stream:=nil;
  try
    Stream:=TMemoryStream.Create;
    TBLOBField(Table1.FieldByName('Graphic')).SaveToStream(Stream);
    Stream.Seek(0,soFromBeginning);
    if Stream.Size>4 then begin
      Stream.Read(N,sizeof(N));
      if N=Signature then OleContainer1.LoadFromStream(Stream);
    end;
    OleContainer1.Modified:=False;
  finally
    if Assigned(Stream) then Stream.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Table1.Open;
end;



--------------------
Говори, что думаешь и думай, что говоришь.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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