Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problemas con DBImage (https://www.clubdelphi.com/foros/showthread.php?t=22766)

(VIH)Lestat 27-06-2005 00:56:08

Problemas con DBImage
 
Disculpen tengo problemas con el DBImage....

en mi base de datos tengo un campo que se llama IMAGEN y es de tipo BLOB que es lo que almacena este tipo de dato?? La imagen o la ruta de la imagen????

Bueno el problema no es guardar las imagenes, el problema es cuando quiero mostrarlas, es decir ejecuta mi consulta en SQL y pues tengo vinculado el DBIMAGE con el IBQuery con el atributo IMAGEn de la tabla ... entonces cuando se termina de ejecutar la consulta me aparece un error que dice INVALID BITMAP que acaso no carga la imagen automaticamente????

Sera que tengo que cargarla yo mismo mediante la propiedad LOADPICTUREFROMFILE() pero como le paso la ruta de la imagen?????

frudolph 27-06-2005 17:00:01

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;

(VIH)Lestat 27-06-2005 19:09:42

ok.. entonces sabes lo que creo que me pasa.. es que al momento de guardar mis datos en el campo donde esta la imagen .. se debe guardar como IMAGEN cierto???? y no como string.. (o sea la ruta donde esta la imagen) pero tengo otra duda... en DELPHI no me acepta los tipos de datos BLOB que tipo de dato en DELPHI es compatible con el BLOB ...

Mira es que mis datos que estan en los EDITS los almaceno primero en unas variables y luego se las paso a los querys como paramatros para almacenar los valores.... pero la variable donde almaceno la imagen la tengo declarada como BLOB pero no me la acepta.. entonces le puse de tipo TPicture para que sea compatible con el parametro y pues tampoco me la carga.... que debo hacer????


La franja horaria es GMT +2. Ahora son las 22:06:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi