Ver Mensaje Individual
  #1  
Antiguo 14-06-2012
shoulder shoulder is offline
Miembro
 
Registrado: abr 2008
Posts: 441
Reputación: 17
shoulder Va por buen camino
Load Imagen desde Mysql campo Blob

Tengo el siguiente problema, ya busque pero no puedo resolverlo. tengo una tabla en mysql, con un campo BLOB, la imagen la graba perfecta la veo en la BD, pero no puedo traerla en Delphi me da error de "esta imagen no es un Bitmap". a continuacion dejo el codigo. Gracias.


Cita:
//Grabar

Stream := TStringStream.Create('');
form2.Image2.Picture.Graphic.SaveToStream(Stream);
zquery2.Active;
zquery2.close;
zquery2.SQL.Clear;
zquery2.sql.add ('update agente_d set foto = :foto');
zquery2.sql.add (' where codigo = :codigo');
zquery2.Params.ParamByName('codigo').Value := strtoint(dbgrid1.Fields[2].Text);

zquery2.Params.ParamByName('foto').AsString := Stream.DataString;
zquery2.Active;
try
zquery2.ExecSQL;
try
zquery2.SQL.Add('commit');
showmessage('Bien grabado');
except
.......

(Hasta qui todo bien, graba veo la imagen desde el mysql)






//Load (no me trae la imagen en delphi.
zquery1.active;
zquery1.Close;
zquery1.SQL.Clear;
zquery1.Close;
zquery1.SQL.Add('select foto from
agente_d');
zquery1.SQL.Add('where documento_nro = :documento_nro and documento_tipo = :documento_tipo and tipo_escaneo = :tipo');
zquery1.Params.ParamByName('documento_nro').asstring := trim(form1.dbgrid1.Fields[3].Text);
zquery1.Params.ParamByName('documento_tipo').AsString := form1.dbgrid1.Fields[2].Text;
zquery1.Params.ParamByName('tipo').AsString := 'Foto';
zquery1.Active := True;



if not zquery1.Eof then
begin

Bitmap := nil;
Stream := nil;

try
Bitmap := TBitmap.Create;
Stream := TStringStream.Create(zquery1.Fields[0].AsString);
Bitmap.LoadFromStream(Stream);
Image1.Picture.Assign(Bitmap);

finally
Bitmap.Free;
Stream.Free;
end;
end;
Responder Con Cita