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;
|