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: | |
|
Links do Yahoo! Grupos
- Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/
- Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
- O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!.