Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Oracle (https://www.clubdelphi.com/foros/forumdisplay.php?f=22)
-   -   Imagenes en Oracle 7 (https://www.clubdelphi.com/foros/showthread.php?t=12619)

jnbruguer 22-07-2004 10:08:33

Imagenes en Oracle 7
 
Buenos dias a todos, os agradeceria que me echaseis una mano, porque no consigo solucionar el siguiente tema:

1. Tipo de campos en Oracle 7 para almacenar una imagen jpg.
2. Como la almaceno y recupero desde delphi.

Gracias todos.:rolleyes:

Coco 26-07-2004 21:00:26

guardar y recuperar imagenes
 
Intenta con un campo blob de oracle.
Para guardarlo puedes probar con el tipo Stream de Delphi.


Aqui te envio la funcion que guarda la imagen, seria mas o menos asi

function guardarImagen( NombreImagen: String;
Data: TStream): Boolean;
var F: TFileStream;
begin
F := TFileStream.Create(nombreImagen, fmCreate);
try
F.CopyFrom(Data, 0 );
Result:= True;
except
Result:= false;
end;
F.Free;
end;

Para instanciarla es:

guardarimagen('nombre.jgp',Query.CreateBlobStream(Query.FieldByName('IMAGEN'), bmRead));

Espero que te sirva.
Saludos.

jachguate 26-07-2004 21:05:44

En oracle 7, me parece que el tipo adecuado es Long Raw.

Hasta luego.

;)

kavisch 06-07-2005 16:52:59

hola
 
tengo un problema similiar, yo guardo la imagen de la siguiente forma pero no se si esta bien..

tabla1.insert;
tabla1.FieldByName('Imagen').LoadFromFile('c:\ruta\imag.jpg',ftmemo);
tabla1.post;

esto me funciona, pero mi problema es cuando quiero mostrar esta imagen en un Timage.. no me da resultado....:confused:

var
bimp : TBitmap;
ms : TMemoryStream;
Begin

Image1.Visible := True;
bimp := TBitmapCreate;
ms := TMemoryStream.Create;
EmployFOTOGRAFIA.SaveToStream(ms);
bimp.LoadFromStream(ms);
Image1.Picture.Assign(bimp);
ms.Free;
bimp.Free;
end;
:confused:


ayudame porfavor..
gracias,

jachguate 06-07-2005 18:13:17

si la imagen que grabas es un jpeg, por que queres recuperarlo como bmp??

Lo normal sería recuperarlo como jpeg, no te parece?

Código Delphi [-]
var
  bimp : TjpegImage;
  ms : TMemoryStream;
Begin
  Image1.Visible := True;
  bimp := TjpegImage.Create;
  ms := TMemoryStream.Create;
  try
    EmployFOTOGRAFIA.SaveToStream(ms);
    bimp.LoadFromStream(ms);
    Image1.Picture.Assign(bimp);
  finally
    ms.Free;
    bimp.Free;
  end;
end;

A tu código le he añadido una clausula try/except para garantizar que se libere siempre la memoria, y además lo he publicado con la etiqueta delphi que debieras usar para publicar trozos de código... ¿notas la diferencia?.

Saludos.

kavisch 07-07-2005 18:00:10

hola,

lo he hecho mo me dijiste, pero ahora el erro que me desplega es:
JPEG Error #42.....

quiero Preguntarte algo..
si yo guardo la imagen como bmp en mi DB, seria posible recuperarla y mostrarla en el TImage:confused: ?..

Gracias,

jachguate 07-07-2005 19:16:07

Si es posible almacenarlas en bmp, y también es posible almacenarlas en jpeg.

Según un par de resultados de mi búsqueda, aparentemente el error #42 es por razones de memoria... te recomiendo investigar y probar también por ese lado.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 22:42:36.

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