Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение в Blob поле .... [ABsolute DB] 
:(
    Опции темы
RA
Дата 5.12.2004, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

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



Мне нужно переодически сохранять в Blob инфу из дерева TreeView,
для этого я сохраняю дерево в фаил (SaveToFile), а потом добавляю этот фаил в Blob
Код

FileStream := TFileStream.Create('MyFile',fmOpenRead or fmShareDenyNone);

Мне хотелосьбы сохранять инфу из TreeView в блоб минуя процесс сохранения из TreeView во временный фаил.

Быть может это делается както с помощью TreeView.SaveToStream ...
но что-то у меня не получилось.



Вот код того как это выглядит у меня:
Код

Procedure TForm1.SaveTreeCatalogs;
var
 FileStream: TFileStream;
 BlobStream: TStream;

 begin
    OnAfterPost:=false;

    TreeView1.SaveToFile(DB_FUNCS.GetTempDir+'CATALOGS.TXT');
    ABSTable1.TableName:='tbTreeView';

    ABSTable1.Open;
    ABSTable1.Edit;

      BlobStream := ABSTable1.CreateBlobStream(ABSTable1.FieldByName('DaTreeView'),bmWrite);
      FileStream := TFileStream.Create(DB_FUNCS.GetTempDir+'CATALOGS.TXT',fmOpenRead or fmShareDenyNone);
      BlobStream.CopyFrom(FileStream,FileStream.Size);

      FileStream.Free;
      BlobStream.Free;
      ABSTable1.Post;

   ABSTable1.Close;
end;









PM   Вверх
Vit
Дата 5.12.2004, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Не знаком не с этой базой ни с этими компонентами, но на вскидку

Код

...
   TreeView1.SaveToStream(MemoryStream);
   MemoryStream.position:=0;
...
  (ABSTable1.fieldbyname('DaTreeView') as TBlobField).loadfromstream(MemoryStream);



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 5.12.2004, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

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



Увы! не работает! smile
PM   Вверх
Vit
Дата 6.12.2004, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Покажи весь код который не работает


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 6.12.2004, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

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



Код




Procedure TForm1.SaveTreeCatalogs;
var
FileStream: TFileStream;
BlobStream: TStream;
MemoryStream:TMemoryStream;
begin
   OnAfterPost:=false;
   ABSTable1.TableName:='tbTreeView';

   ABSTable1.Open;
   ABSTable1.Edit;

    { BlobStream := ABSTable1.CreateBlobStream(ABSTable1.FieldByName('DaTreeView'),bmWrite);
     FileStream := TFileStream.Create(DB_FUNCS.GetTempDir+'CATALOGS.TXT',fmOpenRead or fmShareDenyNone);
     BlobStream.CopyFrom(FileStream,FileStream.Size); }

TreeView1.SaveToStream(MemoryStream);
  MemoryStream.position:=0;



 (ABSTable1.fieldbyname('DaTreeView') as TBlobField).loadfromstream(MemoryStream); //Ошибка вылетает тут.


     MemoryStream.Free;
     FileStream.Free;
     BlobStream.Free;
     ABSTable1.Post;

  ABSTable1.Close;
end;


PM   Вверх
Vit
Дата 6.12.2004, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Код

Procedure TForm1.SaveTreeCatalogs;
var
FileStream: TFileStream;
BlobStream: TStream;
MemoryStream:TMemoryStream;
begin
  OnAfterPost:=false;
  ABSTable1.TableName:='tbTreeView';

  ABSTable1.Open;
  ABSTable1.Edit;
 
 MemoryStream:=TMemoryStream.Create; //!!!!!
TreeView1.SaveToStream(MemoryStream);
 MemoryStream.position:=0;



(ABSTable1.fieldbyname('DaTreeView') as TBlobField).loadfromstream(MemoryStream); //Ошибка вылетает тут. - удивительно что не на предыдущей строке....


    MemoryStream.Free;
    FileStream.Free;
    BlobStream.Free;
    ABSTable1.Post;

 ABSTable1.Close;
end;


Добавлено @ 00:42
И какого типа поле 'DaTreeView'? Может там надо memo использовать?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 6.12.2004, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


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

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



Vit

MemoryStream:=TMemoryStream.Create;
Я использовал просто забыл в ответе вписать тк. вставку делал
из своего поста.



Вообщем после удаления не юзабельных

FileStream.Free;
BlobStream.Free;

Всё заработало. smile

Спосибо за код.



PM   Вверх
Vit
Дата 6.12.2004, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



smile


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW 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.1088 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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