Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 30-10-2012
edgar_prospero edgar_prospero is offline
Miembro
 
Registrado: mar 2012
Posts: 200
edgar_prospero Va por buen camino
guardar imagen en campo blob

que hay amigos tengo un sistema donde voy agregando productos a una base de datos mysql, pero tengo un problema a cada producto quiero agregar una imagen, me gustaria saber que componentes o que necesito para lograrlo, ojala me puedan orientar un poco. para ir guardando lo demas utilizo el siguiente codigo:

Código Delphi [-]
tabla.SQL.Clear;
tabla.Close;
tabla.SQL.Add('insert into clientes(codigo, nombre, direccion, comentarios)values(:pcodigo, :pnombre, :pdireccion, :pcomentarios) on duplicate   key update nombre=:pnombre, direccion=:pdireccion, comentarios=:pcomentarios');
tabla.ParamByName('pcodigo').AsString:=codigo.Text;
tabla.ParamByName('pnombre').AsString:=nombre.Text;
tabla.ParamByName('pdireccion').AsString:=direccion.Text;
tabla.ParamByName('pcomentarios').Asstring:=comentarios.Text;

tabla.Execute;
nombre.Clear;
nombre.Clear;
direccion.Clear;
comentarios.Clear;


query.Close;
     query.SQL.Text:='SELECT codigo FROM clientes ORDER BY codigo desc LIMIT 1';
     query.Open;
    codigo.text := IntToStr(query.FieldByName('codigo').asInteger +1) ;
     nombre.SetFocus;
      nombre.SelectAll;

  //tabla.SQL.Clear;

  showmessage('grabado con exito ');
__________________
saludos!!!

Última edición por ecfisa fecha: 30-10-2012 a las 18:47:39. Razón: Quitar íconos del código
Responder Con Cita
  #2  
Antiguo 30-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 7.813
ecfisa Es un diamante en brutoecfisa Es un diamante en brutoecfisa Es un diamante en bruto
Hola edgar.

Primeramente necesitas crear un campo de tipo blob en la tabla productos para que así puedas almacenar la imágenes correspondientes.

Al pié de esta página tenes varios enlaces relacionados a tu consulta, y creo que este [Guardar una imagen a una base de datos en mySQL], también te puede ser útil.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 30-10-2012
edgar_prospero edgar_prospero is offline
Miembro
 
Registrado: mar 2012
Posts: 200
edgar_prospero Va por buen camino
gracias por responder, si el campo ya lo cree, algo que me falto especificar es que quiero mediante un boton se abra para buscar la imagen a guardar
__________________
saludos!!!
Responder Con Cita
  #4  
Antiguo 30-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 7.813
ecfisa Es un diamante en brutoecfisa Es un diamante en brutoecfisa Es un diamante en bruto
Hola Edgar.

Podrías usar un TOpenPictureDialog para buscar la imágen y luego en el evento OnClick del botón, hacer algo como por ejemplo:
Código Delphi [-]
...
uses jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
  Jpg : TJPEGImage;
begin
  if OpenPictureDialog1.Execute then
  begin
    Jpg := TJPEGImage.Create;
    try
      Jpg.LoadFromFile(OpenPictureDialog1.FileName);
      DataSet.Edit;
      DataSet.FieldByName('CAMPO_BLOB').Assign(Jpg);
    finally
      Jpg.Free;
    end;
  end;
end;
No utilizo MySQL, pero en Firebird guarda la imágen jpg sin problemas.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-10-2012 a las 19:46:37.
Responder Con Cita
  #5  
Antiguo 30-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 7.813
ecfisa Es un diamante en brutoecfisa Es un diamante en brutoecfisa Es un diamante en bruto
Hola de nuevo.

Se me escapó, que tal vez tengas otros tipos que jpg...

Proba de esta forma:
Código Delphi [-]
...
uses jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
  Pic : TPicture;
begin
  if OpenPictureDialog1.Execute then
  begin
    Pic := TPicture.Create;
    try
      Pic.LoadFromFile(OpenPictureDialog1.FileName);
      DAtaSet.Edit;
      DataSet.FieldByName('CAMPO_PBLOB').Assign(Pic);
     finally
      Pic.Free;
    end;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 30-10-2012
edgar_prospero edgar_prospero is offline
Miembro
 
Registrado: mar 2012
Posts: 200
edgar_prospero Va por buen camino
gracias por tu respuesta.

no se en que cambie firebird a mysql pero con este procedimiento no me marca ningun error, pero no me esta guardando nada en la base de datos
__________________
saludos!!!
Responder Con Cita
  #7  
Antiguo 30-10-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: Planeta Agua
Posts: 22.451
Casimiro Notevi Va camino a la fama
Quizás falte el post
Código Delphi [-]
DataSet.FieldByName('CAMPO_PBLOB').Assign(Pic);
DataSet.Post;
__________________
/* Saludos
*/
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código

$ sudo mv system > /dev/null

Responder Con Cita
  #8  
Antiguo 30-10-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 7.813
ecfisa Es un diamante en brutoecfisa Es un diamante en brutoecfisa Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Quizás falte el post
Código Delphi [-]
DataSet.FieldByName('CAMPO_PBLOB').Assign(Pic);
DataSet.Post;
Exáctamente.

No lo agregué allí por que supuse que tenía más campos y realizaba el guardado al finalizar la carga de los datos.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 14-11-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 168
martini002 Va por buen camino
Saludos Amigos,
Tengo 2 dias luchando con esto,
intentando guardar una imagen en una tabla de una BD
tengo una tabla precisa con campos NumeroConductor e Imagen
la ultima de tipo Blob, he tratado de modificar cuanto codigo he visto
pero sin ningun exito hasta ahora, intente con Stream, y no funciono,
ahora estoy intentando con tu codigo Ecfisa y no estoy muy seguro
de como adaptarlo, estoy usando ZEOS 7 + SQLite + D2010

mira un pedazito de mi codigo:

Justo ahorita intento con este, tratando de asignar al campo Blob la imagen,
pero me da un error, diciendo que no consigue el campo Imagen :S

Código Delphi [-]
ZQuery1.Close;
                ZQuery1.SQL.Text:= 'Insert Into ImagenesConductores Values ('+IntToStr(NumeroConductor)+', :Imagen)';
                ZQuery1.FieldByName('Imagen').Assign(Image1);
                ZQuery1.ExecSQL;

Y este otro intentando con asignacion de Stream, pero sin exito,
me da un error, Unrecognized token: "'" Creo que es con el SQLite me parece

Código Delphi [-]
_Imagen := TMemoryStream.Create;
                Image1.Picture.Graphic.SaveToStream(_Imagen);

                ZQuery1.Close;
                ZQuery1.SQL.Text:= 'Insert Into ImagenesConductores Values ('+IntToStr(NumeroConductor)+', :Image)';
                ZQuery1.Params.Items[0].LoadFromStream(_Imagen, ftBlob);
                ZQuery1.ExecSQL;

Les agradezco muchisimo su ayuda, estoy nuevo con esto y apenas es mi primer intento
usando campos de tipo Blob. Saludos
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #10  
Antiguo 14-11-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 168
martini002 Va por buen camino
Estuve probando este codigo,
aunque no me da ningun error tampoco hace nada :/
crea un registro null en la BD inclusive en el campo Blob

Código Delphi [-]
Var
JPG:TPicture;

Begin
Jpg:= TPicture.Create;
Jpg.LoadFromFile(OpenPictureDialog1.Filename);

ZQuery2.Open;
ZQuery2.Edit;
ZQuery2.FieldByName('Imagen').Assign(Jpg);
ZQuery2.Post;

end

Edito:
De hecho no es el mismo orden en el que lo tengo,
pero si estoy seguro que carga la imagen a la variable Jpg
porque a su vez lo hace con un TImage
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.

Última edición por martini002 fecha: 14-11-2012 a las 19:51:29.
Responder Con Cita
  #11  
Antiguo 14-11-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 7.813
ecfisa Es un diamante en brutoecfisa Es un diamante en brutoecfisa Es un diamante en bruto
Hola martini002.

Tal vez SQLite requiera algún tratamiendo diferente, no lo conozco. Pero revisa si en estos enlaces encontras algo que sirva:
Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta


Herramientas
Desplegado

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
Guardar y cargar imagen en campo blob look Firebird e Interbase 5 26-01-2012 21:56:27
guardar archivos en un campo blob a_f_g Firebird e Interbase 10 07-11-2008 20:46:28
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
guardar un fichero en un campo blob apicito Firebird e Interbase 2 02-03-2005 12:01:54
Guardar formatos en un campo blob morfeo21 Varios 0 30-06-2003 19:45:53


La franja horaria es GMT +2. Ahora son las 10:30:37.


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