Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
Cómo leer una imagen de una tabla en sql server...

Buenas tarde amigos del club, quiero presentar una foto en Timage, la foto se encuentra en una tabla como puedo leer esa imagen uso:
Delphi 7 y Sql Server 2005 y componentes Ado.
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #2  
Antiguo 13-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Estaría bien saber qué tipo de imagen es (JPG, BMP,...) y cómo la has guardado previamente.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 13-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
jpg y es una data que nos han suministrado del padron.
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #4  
Antiguo 19-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
Disculpa por la respuesta anterior, el tipo de dato que esta guardado ne la db es binario.
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #5  
Antiguo 21-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
ni con el dbimagen he podido presentar la foto favor amigos de dar una mando con esto.
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #6  
Antiguo 21-07-2010
Mystery Mystery is offline
Miembro
 
Registrado: jul 2007
Ubicación: Santiago de Cuba
Posts: 69
Poder: 17
Mystery Va por buen camino
re...

bueno si es un jpg... primero pon en uso la unit jpeg...y luego has algo asi....

Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
var
  jpg:TJPEGImage;
  stream:TMemoryStream;
begin
  stream:=TMemoryStream.Create;
  jpg:=TJPEGImage.Create;
  TBlobField(tbl1.FieldByName('Foto')).SaveToStream(stream);
  stream.Seek(0, soFromBeginning);
  jpg.LoadFromStream(stream);
  img1.Picture.Assign(jpg);
end;
espero te sirva...
chaooo sin mas...
Mystery
Responder Con Cita
  #7  
Antiguo 21-07-2010
Mystery Mystery is offline
Miembro
 
Registrado: jul 2007
Ubicación: Santiago de Cuba
Posts: 69
Poder: 17
Mystery Va por buen camino
a por supuesto se me olvido decirte que img1 es un timage... jejejejejeje sorry...
chaooo
sin mas

Mystery
Responder Con Cita
  #8  
Antiguo 21-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
Código Delphi [-]
// de donde sacas esta parte, TBlobField, dime que es.
TBlobField(tbl1.FieldByName('Foto')).SaveToStream(stream);
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #9  
Antiguo 21-07-2010
Mystery Mystery is offline
Miembro
 
Registrado: jul 2007
Ubicación: Santiago de Cuba
Posts: 69
Poder: 17
Mystery Va por buen camino
Bueno discúlpame que no te haya explicado un poco más al detalle... de todas formas ese método esta un poquito incompleto pues no liberaba los objetos después de terminar...
Aquí te dejo una solución mejor explicada..
Ante todo debo decirte que debes tener lo mínimo, una conexión a tu BD, un objeto del tipo TADODataSet o TADOTable, etc… un timage y un botón jejejejeje…
Después en el evento onclick del botón pones este código… calro debes estar parado en el registro correcto o sea en un registro donde el campo tuyo (en el ejemplo el campo es foto) tenga un valor valido…
Código Delphi [-]
procedure TForm1.btn1Click(Sender: TObject);
var
  jpg:TJPEGImage;
  stream:TMemoryStream;
begin
  img1.Picture:=nil;//Limpio el TImage...
  stream:=TMemoryStream.Create;//creo el stream para guardar la foto que esta en el campo de mi BD SQL
  jpg:=TJPEGImage.Create; //Creo el objeto de tipo jpg... a cual le voy a asignar el contenido del stream...
  try
//==============================================================================
// tbl1 => ADOTable1
// TBblogField se refiere a un campo de tipo BLOB o image, MEMO, etc...
// los cuales tienen la propiedad de salvar su contenido en memoria con el metodo SaveToStream...
// tambien tienen el metodo loadtostream que se usa para salvar binarios casi de la misma manera en campos blob...
//==============================================================================
    TBlobField(tbl1.FieldByName('Foto')).SaveToStream(stream);//salvo el contenido del campo en memoria...
    stream.Seek(0, soFromBeginning);//Pongo el cursor al inicio del stream...
    jpg.LoadFromStream(stream);//cargo el contenido del stream en mi objeto jpg...
    img1.Picture.Assign(jpg);//asigno el objeto a la propiedad picture de mi timage... y ya esta...
  finally
    stream.Free;//libero el stream...
    jpg.Free;//libero mi objeto jpg...
  end;
end;


bueno sin mas



Mystery
Responder Con Cita
  #10  
Antiguo 21-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
Gracias amigos por la ayuda me da un error:
Código Delphi [-]
 [Error] Consulta_Padron.pas(164): Missing operator or semicolon

Este es el código:
Código Delphi [-]
procedure TfrmConPadron.Button1Click(Sender: TObject);
var
  jpg:TJPEGImage;
  stream:TMemoryStream;
begin
  stream:=TMemoryStream.Create;
  jpg:=TJPEGImage.Create;
  frmConPadron.Image1.Picture:=nil;
  try
   // en esta linea es que me da el error
   frmdata.blofield(frmdata.st_foto.fieldbyname('imagen')).SaveToStream(stream);
   stream.Seek(0, soFromBeginning);
   jpg.LoadFromStream(stream);
   frmConPadron.Image1.Picture.Assign(jpg);
  finally
   stream.Free;
   jpg.Free;
  end;
end;
__________________
ronimaxh
Rep. Dominicana

Última edición por ronimaxh fecha: 21-07-2010 a las 21:45:38.
Responder Con Cita
  #11  
Antiguo 23-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
Distinguidos amigos, sólo me falta la solución de ese error anterior, agradezco a cualquier colega que me de una ayuda con esto.
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #12  
Antiguo 23-07-2010
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
procedure TfrmConPadron.Button1Click(Sender: TObject);
var
jpg:TJPEGImage;
stream:TMemoryStream;
begin
stream:=TMemoryStream.Create;
jpg:=TJPEGImage.Create;
frmConPadron.Image1.Picture:=nil;
try
// en esta linea es que me da el error
frmdata.blofield(frmdata.st_foto.fieldbyname('imagen')).SaveToStream(stream);
stream.Seek(0, soFromBeginning);
jpg.LoadFromStream(stream);
frmConPadron.Image1.Picture.Assign(jpg);
finally
stream.Free;
jpg.Free;
end;
end;
Utiliza mejor una función como esta
Código Delphi [-]
function GetFieldToJPG(FieldName: String): TJPEGImage;
var
  Stream: TMemoryStream;
begin
  Stream := TMemoryStream.Create;
  Result := TJPEGImage.Create;

  with frmData do
  begin
    try
      TBlobField(FieldByName(FieldName)).SaveToStream(Stream);
      Stream.Position := 0;
      if (Stream.Size > 0) then
        Result.LoadFromStream(Stream)
      else
        Result := nil;
    finally
      Stream.Free;
    end;
  end;
end;


procedure TfrmConPadron.Button1Click(Sender: TObject);
begin
  frmConPadron.Image1.Picture.Assign(GetFieldToJPG('IMAGEN'));
end;
Un saludo

P.D.: A la hora de escribir código en delphi me gusta que sea elegante y atractiva.
Responder Con Cita
  #13  
Antiguo 24-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
Gracias amigo, lo tomare encuenta sobre el código atractivo, probare la función y luego les comentaré
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
  #14  
Antiguo 26-07-2010
ronimaxh ronimaxh is offline
Miembro
 
Registrado: jun 2003
Ubicación: Rep. Dominicana
Posts: 307
Poder: 21
ronimaxh Va por buen camino
He resuelto el problema elegí la funcion del colega, gracias a todos por la ayuda.
__________________
ronimaxh
Rep. Dominicana
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer imagen de Access jplj Varios 0 20-03-2009 17:15:53
Como puedo guardar una imagen dentro de una tabla jooooseph Gráficos 3 13-10-2007 02:11:56
Crear tabla en una BD en Server A desde consulta en tabla B en server B joaquinalberto MySQL 1 18-05-2007 10:39:27
Insertar Imagen JPG en tabla de SQL Server 2000 pallyJD SQL 2 20-04-2007 19:25:03
problema al intentar guardar una imagen como blob en una tabla Gigabyte1024 Conexión con bases de datos 3 22-02-2007 23:30:34


La franja horaria es GMT +2. Ahora son las 17:58:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi