La Web del Programador: Comunidad de Programadores
http://www.lawebdelprogramador.com/foros/Delphi/1326796-ayuda_campo_blob.html
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
erikams (28/04/2012 20:28:47)
2.198 visitas
7 respuestas
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
E.T. (28/04/2012 21:08:00)
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
erikams (30/04/2012 18:04:03)
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
E.T. (30/04/2012 20:06:02)
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
erikams (30/04/2012 20:46:17)
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
E.T. (01/05/2012 01:53:39)
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
erikams (02/05/2012 17:58:00)
Mensajes realizados anteriormente (No estaban la última vez que entraste)ayuda campo blob
erikams (03/05/2012 22:28:45)

ayuda campo blob

Publicado por erikams (8 intervenciones) el 28/04/2012 20:28:47
tengo este codigo y no me guarda la imagen
alguien me podria orientar porque
(no me manda ningun error al guardar)
var
bs : TMemoryStream;
begin
qryimag.Close;
qryimag.SQL.Clear;
qryimag.SQL.Add('INSERT INTO imagenes (pantalla,id, imagen) values (14,:id, :imagen);');
qryimag.ParamByName('id').AsInteger := num;
bs := TMemoryStream.Create;
if imgfot.Picture <> nil Then
if imgfot.Picture.Graphic <> nil Then
imgfot.Picture.Graphic.SaveToStream(bs);
qryimag.ParamByName('imagen').DataType := ftBlob;
qryimag.ParamByName('imagen').LoadFromStream(bs,ftBlob);
qryimag.ExecSQL;
end;

ayuda campo blob

Publicado por E.T. (1022 intervenciones) el 28/04/2012 21:08:00
Intenta cargar tu imagen con formato grafico
qryimag.ParamByName('imagen').LoadFromStream(bs,ftGraphic);
O tambien intenta cargarlo desde un archivo
qryimag.ParamByName('blbLogo').LoadFromFile(txtRutaLogo.Text, ftGraphic);

Yo lo tengo funcionando de la segunda forma.
Como compruebas que no te está guardando la imagen?
Lo ves por tu programa, o lo ves desde el administrador de la base de datos?

ayuda campo blob

Publicado por erikams (8 intervenciones) el 30/04/2012 18:04:03
asi lo leo nuevamente (consulto)
y manda un error...

var fldCampo : TField; stStream : TStream; pngImagen: Tdbimage; begin with qryimag do begin qryimag.Close; qryimag.SQL.Clear; qryimag.SQL.Add('SELECT * FROM imagenes'); qryimag.Open; try fldCampo := FieldByName('imagen'); stStream := CreateBlobStream(fldCampo, bmRead); pngImagen := Tdbimage.Create(imgfot); pngImagen.Picture.Graphic.LoadFromStream(stStream); imgfot.Picture.Assign(pngImagen); pngImagen.Free; except end; end; end;
en la base de datos como aparece ?
solo dice [binary] es correcto?

ayuda campo blob

Publicado por E.T. (1022 intervenciones) el 30/04/2012 20:06:02
Ya habia visto ese codigo, lo has modificado, cambiaste el tipo de la variable pmgImagen, utiliza el codigo original, tal vez te marcaba que te faltaba la unidad "pngimage", buscala en la web, y agregala a delphi, con eso el codigo original deberia funcionarte.
Aunque en el codigo original se usan imagenes png, no se que uses tu

ayuda campo blob

Publicado por erikams (8 intervenciones) el 30/04/2012 20:46:17
uso imagenes jpg y bmp

ayuda campo blob

Publicado por E.T. (1022 intervenciones) el 01/05/2012 01:53:39
Para cargar una bmp yo uso lo siguiente
fldCampo := FieldByName('logo'); stStream := CreateBlobStream(fldCampo, bmRead); imgLogo.Picture.Bitmap.LoadFromStream(stStream);
Para jpg no he probado

ayuda campo blob

Publicado por erikams (8 intervenciones) el 02/05/2012 17:58:00
Hola E.T.
muchas gracias por tu ayuda...ya me funciono
cambie mi forma de leer la imagen
y guaaoo funciono...
mil gracias...

ayuda campo blob

Publicado por erikams (8 intervenciones) el 03/05/2012 22:28:45
ahora mi duda es como lo leo una vez guardado
es decir tengo un memdata, necesito leer el campo cmpleto
para realizar algun cambio y sino para guardarlo nuevamente