FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cargar un imagen a un Timage desde ORACLE
Hola a Todos,
Bueno mi problema es que tengo una tabla con un campo tipo long en el cual guardo imganes.. se como guardar las imagenes, utilizo lo siguiente: tabla1.insert; tabla1.FieldByName('Imagen').LoadFromFile('c:\ruta\imag.jpg',ftmemo); tabla1.post; lo que no se es como cargar las imagnes de mi tabla a un componente Timage. porfavor ayuda.. |
#2
|
||||
|
||||
Hola
Ya probastes asociarle un componente TDBImage al campo Imagen de la tabla?
Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#3
|
|||
|
|||
Cita:
si, yo probe con un DBImage y me da un error que dice. EReadError with message 'Stream read error'. por otro lado yo estuve utilizando el sienguente codigo: 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; con esto simplemente no me muestra nada, no me da error pero no me muestra la imgagen. |
#4
|
||||
|
||||
Hola de nuevo
Creo que se te escapó un detalle, las imágenes que estás cargando son JPG y no las puedes asignar así directamente, tienes que primero hacer la conversión.
lo primero es agregar en el Uses la unidad "jpeg". Después algo como esto:
Bueno esto lo he hecho de memoria y mirando tu código, pero de seguro te ayudará a terminar de solucionar el problema. Saludos
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#5
|
|||
|
|||
Hola
primero quiero darte las gracias por el tiempo que has
dedicado para ayudarme.. intente llamarla como un JPG y me dio error : JPEG Error #42.. pero hay algo, la imagen que guardo en la base de dato Oracle es Bitmap y por eso es que trato de capturarla asi... Gracias.. |
#6
|
||||
|
||||
mmmmm
Cita:
Cita:
Por otra parte buscando en los foro he encontrado varios hilos sin respuestas con tu mismo problema: Hilo1 Hilo2 Hilo3 He notado que para guardar la imágen no lo hacen directamente como propones, sino que usan el objeto TStream. Saludos.
__________________
Lo importante no es llegar primero, sino saber llegar. Para que puedas llegar mejor lee la Guia de Estilo |
#7
|
|||
|
|||
hola otra vez
Bueno yo te dije que es de tipo Bitmap porque yo capturo esa imagen
de una camara y la guardo como bitmap el el server y luego la gurado a la base de datos asi mismo. , pero ahora no se si es bitmap, ya que me puse a verificar el hilo3 y intente capturar la imagen como el explica en el hilo, cuando lo ejecute no reconoce ninguno de los formatos, me explico , no es ni BMP , JPG O GIF, Si te das cuanta el lee el campo y pregunta de que tipo es para crear la imagen , en mi caso no entra en ninguno de estos bloques... Gracias... |
#8
|
||||
|
||||
Hola,
En este hilo encontrarás información para almacenar la imagen en la base de datos y luego recuperarla en un control TImage: http://www.clubdelphi.com/foros/showthread.php?t=2450 Las pruebas las hice con bases de datos Paradox e Interbase pero debería valer para todos los tipos de base de datos. Espero que te sirva. Un saludo.
__________________
Todos somos aficionados. La vida es tan corta que no da para más. Guia de Estilos |
#9
|
||||
|
||||
Hola,
A ver, ya he conseguido almacenar imágenes BMP en una base de datos Oracle y luego mostrarlas en un TImage. Lo primero, el campo de la tabla de la base de datos no debe ser LONG sino que debe ser LONG RAW Bien, el código para incorporar la imagen sería algo así e iria colocado en el click de un botón que he puesto para añadir la imagen: OpenDialog1 es un control dialogo de apertura de ficheros. Table1 es un TTable conectado a la tabla. Table1FOTO es el campo persistente asociado al campo de tipo LONG RAW Y luego, para mostrarla en el evento OnAfterScroll del TTable (Table1) he puesto este codigo: Image1 ya sabes lo que es ¿no?. Esta última parte es posible que funcione simplemente así (ojo, esto no lo he probado):
Este codigo combinado con unos buenos try/except y algun control mas por si hubiese error... (paporsiacaso como dicen en mi pueblo) debería funcionarte correctamente. Espero que te sirva. Un saludo.
__________________
Todos somos aficionados. La vida es tan corta que no da para más. Guia de Estilos Última edición por SnaKe fecha: 08-07-2005 a las 08:22:26. |
#10
|
|||
|
|||
Funciono Perfectamente
Hola, Quiero darte las gracias, lo que me enviaste funciona perfectamente guarda la imagen y luego la puedo mostrar en el TImage. Pero quiero preguntarte porque es que no se puede usar LONG, ya que aqui todas las tablas tiene los campos imagenes de tipo long y no Long raw. Muchas gracias, |
#11
|
||||
|
||||
Hola,
Pues la verdad es que no lo se, si dices que en campos de tipo LONG teneis guardadas imágenes no se... yo no puedo... tampoco he trasteado demasiado con Oracle, solo lo suficiente... Cuando creo el campo persistente sobre un campo de tipo LONG de Oracle la variable es del tipo: TMemoField para Delphi, con esto si le intentamos dar datos binarios (imagenes, sonidos, etc...) se almacena como texto con lo cual se pierde información. En cambio si el tipo es LONG RAW el campo persistente se genera del tipo TBlobField para Delphi, entonces al darle información a esa varible ya lo hace correctamente. Yo creo que es un poco como los campos de tipo MEMO y GRAPHIC de Paradox, en uno se almacenan Textos y en otros datos binarios, al menos el tratamiento que Delphi hace de ellos es ese. Un saludo.
__________________
Todos somos aficionados. La vida es tan corta que no da para más. Guia de Estilos |
#12
|
|||
|
|||
Hola Snake
Hola,
Snake tengo un gran problema y te voy a explicar, aqui hay una aplicación finaciera la cual maneja todo lo que es contabillidad, esta aplicacion tiene su base de datos en Oracle y los Campos de Foto son de tipo LONG. lo que sucede es que la aplicacion que estoy creando va a complementar funciones de uno de sus modulos que es el de los empleados, mi aplicación capturara la foto y la guardara en la base de datos y luego la mostrara cuando se busque un empleado. el caso es que como ya hemos hablado yo puedo guardar la imagen en el campo LONG y la aplicacion fInaciera Muestra la imagen, pero con mi aplicacion no puedo mostrarla. ya se que me dijiste que deberia Usar Campos de TIpo LONG ROW y yo hice unas pruebas con tablas que yo cree y funciono perfectamente, pero no puedo cambiar la estructura de estas tablas ne moe lo permiten, el caso es que Quiero saber si puedo desplegar esa imagen en un Timage en delphi con los campos de tipo LONG y muestrame si te es posible un Ejemplo.... Muchas Gracias, Última edición por kavisch fecha: 14-07-2005 a las 15:53:31. |
|
|
|