Ver Mensaje Individual
  #2  
Antiguo 27-06-2005
frudolph frudolph is offline
Miembro
 
Registrado: oct 2004
Posts: 40
Reputación: 0
frudolph Va por buen camino
Estimado: te cuento que el campo BLOB sería el bitmap en sí (BLOB vendría a significar algo así como: Binary Large Object Block, si mal no recuerdo).

Los controles (por ejemplo: TDBIMage) que hacen referencia a este tipo de campo contienen una "interfaz" en su interior que traduce el contenido a una imagen en tu caso particular. Ahora bien, siguiendo con el tema, una imagen no es sólo un mapa de bits, sino que además contiene una cabecera que indica: el tipo de imagen, el tamaño (alto x ancho), la paleta de colores que usa, etc. Así que posiblemente tengas guardado en tu campo algo que no es precisamente una imagen y de ahí el error (por experiencia, a los mensajes de error hay que creerles, así que si te dice INVALID BITMAP, es porque tienes un bitmap no válido y no le des más vueltas :-) ).

Para cargar una imagen en tu campo BLOB lo podés hacer desde el portapapeles o bien con alguna función como la que mencionas.

Como ejemplo, te paso esta porción de código para cargar ina imagen desde un archivo haciendo doble click sobre el DBIMage:

Código Delphi [-]
procedure TForm1.DBImage1DblClick(Sender: TObject);
var
  D: TOpenDialog;
begin
  D := TOpenDialog.Create(nil);
  try
    if D.Execute then
      with TDBImage(Sender) do
        begin
          if not (DataSource.State in [dsEdit, dsInsert]) then
            DataSource.DataSet.Edit;
          Picture.LoadFromFile(D.FileName);
        end;
    finally
      D.Free;
    end;
end;

Última edición por frudolph fecha: 27-06-2005 a las 17:02:51.
Responder Con Cita