Uma forma que eu sei que funciona (pode haver outras), seria usando RTTI, se
não me engano, a forma mais simples seria :

1) seu objeto teria que ser descendente de TComponent
2) as properties teriam que ser publisheds
3) vc já estaria apto a carregar este objeto em um TMemoryStream, usando o
método WriteComponent

A partir daí, vc pode fazer o que quiser com este stream, exemplo :

salvar em um campo blob
salvar em disco

e depois vc poderá fazer o inverso :
carregar o objeto novamente do campo blob ou do disco

Faça uma pesquisa por RTTI, TMemoryStream, WriteComponent, ReadComponent que
vc vai chegar lá.

Para te adiantar, um pequeno exemplo de como Salvar em arquivo no disco e
depois carregar do arquivo... a partir daí, adaptar para o blob é tranquilo
:

Objeto :

type
TListProxy = class(TComponent)
private
   FList : TStringList;
public
   constructor Create;

published
   property List : TStringList read Flist write Flist;
end;


Salvando um objeto do tipo TComponent em disco :

procedure TForm1.Button4Click(Sender: TObject);
var
  proxy : TListProxy;
  Stream :TMemoryStream;

begin

  proxy := TListProxy.Create;
  Stream :=TMemoryStream.create;
  proxy.List.Add(teste 1');
  proxy.List.Add(teste 2');
  try
      Stream.WriteComponent(proxy);
    Stream.SaveToFile('comp.bin');
  finally
    FreeAndNil(proxy);
  end;

end;

Carregando do disco para o objeto :

procedure TForm1.Button5Click(Sender: TObject);
var
  proxy : TListProxy;
  Stream :TMemoryStream;

begin

  proxy := TListProxy.Create;
  Stream :=TMemoryStream.create;
  Stream.LoadFromFile('comp.bin');
  try
    Stream.ReadComponent(proxy);
    ShowMessage(Proxy.List.Text);

  finally
    FreeAndNil(proxy);
  end;
end;

[]s

Paulo Botelho
----- Original Message -----
From: "arcoverdeneto" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Tuesday, May 09, 2006 11:23 AM
Subject: [delphi-br] Salvar Objeto em BLOB


Pessoal,

Existe alguma forma de gravar o objeto abaixo, com todas as
propriedades e seus respectivos valores, para um campo Blob (Firebird)?

TTeste = class
private
   FId : Integer;
   FNome : string;
public
   property Id : Integer read FId write FId;
   property Nome : string read FNome write FNome;
end;

Abraços,

Álvaro Vieira








--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>



Links do Yahoo! Grupos










--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]



Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a