PDA

Ver la Versión Completa : Campo OLE


MaMu
14-05-2007, 01:48:01
Me pase leyendo todos y cada uno de los post de consulta acerca de la mejor forma de guardar una imagen en el campo de una tabla, y todavia no puedo hacerlo funcionar.
Yo tengo un formulario donde recopilo datos, y una opcion para seleccionar una foto estandard o una que el usuario quiera.
Las fotos son en BMP, ya que necesito si o si ese formato por la calidad, aunque no es tanto problema por las fotos son 4x4 (tipo carnet) con lo que practicamente la medida es unica.
En la tabla access, tengo definido el campo "foto" como Objeto OLE, ya que no se que otro usar para la imagen. La imagen a cargar, la tengo previsualizada en un TImage. Pero el problema esta en que tipo de dato debo colocar:


ADOQuery1.Open;
ADOQuery1.Insert;
try
....
ADOQuery1.FieldByName('foto').?????????
....
except

cHackAll
14-05-2007, 20:51:24
Algo así te servirá:

var Stream: TStream; lpBuffer: Pointer;
begin
...
Image1.Picture.Bitmap.SaveToStream(Stream);
GetMem(lpBuffer Stream.Size);
Stream.Write(lpBuffer^, Stream.Size)
ADOQuery1.FieldByName('foto').SetData(lpBuffer);
ADOQuery1.FieldByName('foto').DataSize = Stream.Size;
...
end;

Suerte.