Teu problema para recuperar a imagem está na linha em negrito que coloquei 
abaixo:

procedure TProcFoto.DBGrid1DblClick(Sender: TObject);
begin
  Principal.Edit1.Text := Query1.fieldbyname('CODIGO').AsString;
  Principal.Edit2.Text := Query1.fieldbyname('NOME').AsString;
  Principal.imgFoto.Picture.Bitmap.LoadFromFile(Principal.Camera1.FichierImage);
  close;
end;

Neste código estás pegando a imagem do arquivo e não do banco de dados.


Bem, mas para te ajudar mesmo, sugiro que trabalhes com vou mostrar. Para 
auxiliar nessa tarefa, criei duas funções, assim para todos os casos que 
tiverem imagens sempre elas. Neste caso uso os componentes da IBX, mas pode ser 
usado como exemplo para migrar para outros componentes (por isso é bom usar 
funções ...). Vale observar que trato aqui tanto para campos BLOB que receberão 
imagens ou textos.

procedure LeCampoBlob(Query: TIBQuery; Campo: string; Propriedade: TPersistent);
var TempStream : TStream;
begin
  TempStream := Query.CreateBlobStream(Query.FieldByName(Campo),bmRead);
  if (Propriedade is TPicture) then begin
    TPicture(Propriedade).BitMap.LoadFromStream(TempStream);
  end else begin
    TStrings(Propriedade).Clear;
    TStrings(Propriedade).LoadFromStream(TempStream);
  end;
  TempStream.Free;
end;

procedure GravaCampoBlob(Query: TIBQuery; Parametro: string; Propriedade: 
TPersistent);
var TempStream : TMemoryStream;
begin
  TempStream := TMemoryStream.Create;
  if (Propriedade is TPicture) then begin
    TPicture(Propriedade).BitMap.SaveToStream(TempStream);
    Query.Params.ParamByName(Parametro).LoadFromStream(TempStream,ftBlob);
  end else begin
    TStrings(Propriedade).SaveToStream(TempStream);
    Query.Params.ParamByName(Parametro).LoadFromStream(TempStream,ftBlob);
  end;
  TempStream.Free;
end;

A utilização fica assim:

ps: utilizar abaixo que a imagem estará numa variável chamada IMAGEM

1) Para inserir uma imagem no banco de dados use o seguinte esquema 
QInsert.SQL.Text := 'INSERT INTO tabela (codigo,nome,foto) VALUES 
(:codigo,:nome;:foto)';
QInsert.SQL.ParamByName('codigo').AsString := Edit1.Text;
QInsert.SQL.ParamByName('nome').AsString := Edit2.Text;
GravaCampoBlob(QInsert,'foto',IMAGEM);
QInsert.ExecSQL;

2) Para ler uma imagem do banco ...
QSelect.SQL.Text := 'SELECT nome,foto FROM tabela WHERE codigo=:codigo';
QSelect.SQL.ParamByName('codigo').AsString := Edit1.Text;
QSelect.Open;
Edit2.Text := QSelect.FieldByName('nome').AsString;
LeCampoBlob(QSelect,'foto',IMAGEM);
QSelect.Close;


Depois faça ...
COMPONENTE_IMAGE.Picture.BitMap.Assign(IMAGEM);


é mais ou menos isso ... adptei essas funções da minha classe de persistência 
... 

Alessandro DUARTE de Moraes
A.C. Santa Casa do Rio Grande.
http://www.santacasarg.com.br

  ----- Original Message ----- 
  From: rafaelpinto19 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Tuesday, May 06, 2008 7:16 PM
  Subject: [delphi-br] Re: Gravar imagens no Banco Interbase/Firebir


  Alessandro, Ricardo e Bruno e aos demais membros do Grupo, quero
  agradecer por tentarem me expilcar e ajudar a resolver este problema,
  Estou em fase de aprendizagem ainda. Eu tentei um código, mas não deu
  certo. Mas perece q eu estou no caminho certo. No Primeiro momento eu
  até pensei que consegui gravar a imagen capturada, pensei em ter
  conseguindo resolver o problema. Sempre quando faço uma consulta para
  retornar a foto da pessoa resgitrada no Sistema, sempre aparece a foto
  da "última" imagem capturada. Ou seja...se eu registrei João, Maria e
  José respectivamente e capturei a foto de cada um deles, mesmo eu
  consultando o João, sempre me rotorna a imagem do José, por ter sido o
  "último" quem o sistema capturou a imagem. Postei esse meu código para
  ver onde eu estou errando e ver se vcs conseguem me ajudar a resolver
  este problema.

  procedure TPrincipal.BtnGravarClick(Sender: TObject);

  begin
  //imgFoto.Visible:= True;
  imgFoto.Picture.Bitmap.LoadFromFile(Camera1.FichierImage);
  Query.Close;
  Query.SQL.Clear;
  Query.SQL.Add('insert into VISITA(CODIGO,NOME,FOTO) values
  (:CODIGO,:NOME,:FOTO)');

  Query.ParamByName('FOTO').LoadFromFile(Camera1.FichierImage,ftBlob);
  //:= imgFoto.Picture.Bitmap.LoadFromFile(Camera1.FichierImage);
  Query.ParamByName('CODIGO').AsString := Edit1.Text;
  Query.ParamByName('NOME').AsString := Edit2.Text;
  Query.ExecSQL;
  Query.Transaction.Commit;
  Query.Transaction.Active := true;
  end.

  Onde: 

  . imgFoto = TImage(Image), é o 6º componente da palheta Aditional no
  Delphi e responsável pela visualização de imagens, fotos e etc.
  . Camera1 =TCamera(Câmera), É o único componente da palheta Yves e é
  responsável pela visualização de imagens de uma Webcam ou Câmeras
  digitais. Nela conseguimos fazer a devidas e necessárias capturas. 

  e esse é o código que eu uso na para visualizar os dados e foto do
  registro consultado.

  procedure TProcFoto.DBGrid1DblClick(Sender: TObject);
  begin
  Principal.Edit1.Text := Query1.fieldbyname('CODIGO').AsString;
  Principal.Edit2.Text := Query1.fieldbyname('NOME').AsString;
  Principal.imgFoto.Picture.Bitmap.LoadFromFile(Principal.Camera1.FichierImage);
  close;
  end;

  Onde:
  . Principal é o nome do Form de destino onde estão os edtis que vão
  mostrar as dados a serem pesquisados e a foto do registro a ser mostrada.


  --- Em delphi-br@yahoogrupos.com.br, "Alessandro DUARTE de Moraes"
  <[EMAIL PROTECTED]> escreveu
  >
  > Essa discussão é bem relevante, então cito alguns pontos a favor:
  > 
  > 1) Para acessos remotos, isto é, o servidor está em uma localidade e
  o cliente em outra, não vejo uma forma mais coerente do que ter a
  imagem tb no banco de dados
  > 2) Menos "gambiarra" qdo for executar uma select para relatórios ...
  > 
  > Para completar, sugiro que seja criada uma tabela no banco que seja
  dedicada a armazenar imagens, apenas com 2 campos: id INTEGER e imagem
  BLOB
  > e nas tabelas que são necessárias ter uma ou mais imagens basta
  colocar campos referenciando ao id desta tabela de imagens.
  > 
  > Tive experiências traumáticas com as imagens em uma pasta ... mas
  uma solução bem elaborada pode dar certo, exceto no caso do item 1 que
  citei acima.
  > 
  > Abraços,
  > 
  > Alessandro DUARTE de Moraes
  > A.C. Santa Casa do Rio Grande.
  > http://www.santacasarg.com.br
  > 
  > ----- Original Message ----- 
  > From: Ricardo Cabral 
  > To: delphi-br@yahoogrupos.com.br 
  > Sent: Monday, May 05, 2008 2:02 PM
  > Subject: RE: [delphi-br] Gravar imagens no Banco Interbase/Firebir
  > 
  > 
  > Bruno,
  > 
  > Gravando no banco não deixaria o mesmo muito "pesado" ?
  > 
  > 
  > 
  > Bruno Lichot <[EMAIL PROTECTED]> escreveu:
  > Eu prefiro gravar imagens no banco, é mais rápido de trabalhar e
  no meu modo de ver mais seguro também.
  > 
  > Abs
  > 
  > BL
  > 
  > From: delphi-br@yahoogrupos.com.br
  [mailto:[EMAIL PROTECTED] On Behalf Of Ricardo Cabral
  > Sent: segunda-feira, 5 de maio de 2008 13:34
  > To: delphi-br@yahoogrupos.com.br
  > Subject: Re: [delphi-br] Gravar imagens no Banco Interbase/Firebir
  > 
  > Acho que seria mais interessante gravar somento o caminho da
  imagem no BD e gravar a imagem numa pasta.
  > 
  > rafaelpinto19 <[EMAIL PROTECTED]<mailto:rafaelpinto%40cdsol.com.br>>
  escreveu:
  > 
  > Olá galera,
  > 
  > Alguém poderia me explicar como gravar imagens no Banco de
  > dados pelo delphi, Estou usandon o componente Tcamera para Visualizar
  > a imagem pela webcam e o componente TImage para Capturar. Agora salvar
  > a imagem no Banco eu nnão sei ainda. Se tive rum rotina ou um código
  > simples. Eu vou agradecer bastante. Obrigado pela atenção!!!
  > 
  > Abraços,
  > 
  > Ricardo Cabral
  > 
  > ---------------------------------
  > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
  armazenamento!
  > 
  > [As partes desta mensagem que não continham texto foram removidas]
  > 
  > [As partes desta mensagem que não continham texto foram removidas]
  > 
  > Abraços,
  > 
  > Ricardo Cabral
  > 
  > ---------------------------------
  > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
  armazenamento! 
  > 
  > [As partes desta mensagem que não continham texto foram removidas]
  > 
  > 
  > 
  > 
  > -------------------------- 
  > E-mail Seguro Vetorial.net 
  > 
  > Mensagem classificada como NÃO-SPAM. Para classificar como SPAM, 
  > encaminhe para [EMAIL PROTECTED] 
  > 
  > Chave de Identificação: 54568,481f3db9196851913172569 
  > 
  > 
  > [As partes desta mensagem que não continham texto foram removidas]
  >



   
  -------------------------- 
  E-mail Seguro Vetorial.net 

  Mensagem classificada como NÃO-SPAM. Para classificar como SPAM, 
  encaminhe para [EMAIL PROTECTED] 

  Chave de Identificação: 54568,4820d8e0461362074787067 


[As partes desta mensagem que não continham texto foram removidas]

Responder a