Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > PostgreSQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
Lightbulb Problema al visualizar imagenes

Hola Foro:

Actualmente estoy desarrollando una aplicación sobre un inventario. La misma la estoy creando con CodeGear 2007 (Delphi 2007) y utilizo PostgreSQL como Servidor de datos (Excelente desempeño). En específico utilizo la versión 9.1.1 que es la última estable.

El problema es el siguiente:

Una de las informaciones a guardar es una imagen, la cual veo que se guardó en un campo tipo Bytea. Cuando examino esa tabla con Navicat for PostgreSQL la imagen se observa perfectamente.

Pero cuando desde Delphi le asigno en la ventana de trabajo, un TDBImage, no me muestra la imagen que tengo almacenada en la Base de datos.

Tampoco me permite cargar imagen nueva mediante:
Código Delphi [-]
  if RzOpenDialogo.Execute then DBImagen.Picture.LoadFromFile(RzOpenDialogo.FileName);

Me llega a mostrar la imagen pero no la incerta en la tabla de la base de datos.

Como modo de aclaración decirles que antes eran tablas Tipos PARADOX, la cuales importe desde el mismo NAVICAT, sin problema alguno.

¿Como puedo solucionar el problema de que me muestre la imagen almacenada desde Delphi?
¿Como puedo hacer incertar una imagen nueva asignada?

Gracias de antemano
__________________
Alea iacta est
Responder Con Cita
  #2  
Antiguo 02-12-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Hola.

A ver si va a ser por el tipo de campo, ¿PostgreSQL no tiene campos blob?

Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 02-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
Hola [newtron]

No, PostgreSQL no tiene este tipo de Campo, que me perece utiliza MySQL. Estuve revisando el Post este http://www.clubdelphi.com/foros/showthread.php?t=66498

Pero desgraciadamente ese componente no va nada bien con Delphi 2007. Ahora estoy tratando de ver algún componente actualziado o equivalente para esto. Vaya que debe existir..

Saludos
__________________
Alea iacta est
Responder Con Cita
  #4  
Antiguo 02-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Seguro que tiene campos blob o similares.
Responder Con Cita
  #5  
Antiguo 02-12-2011
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Seguro que tiene campos blob o similares.
En PostgreSql se utilizan campos bytea.

Te adjunto PallyRS el componente EDBImage para Delphi 2007. Ojalá lo puedas instalar sin problemas, ya que yo lo actualizé para D2007 y aunque no tengo mucha experiencia a mi me funciona perfecto.
Salu2
Archivos Adjuntos
Tipo de Archivo: zip EDBIimage 16 Delphi11.zip (24,3 KB, 26 visitas)

Última edición por radenf fecha: 03-12-2011 a las 00:05:04.
Responder Con Cita
  #6  
Antiguo 03-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues entonces, PallyRS, está usando el tipo correcto, el problema debe ser en su código, habría que verlo entonces.

Responder Con Cita
  #7  
Antiguo 04-12-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola a todos... tiempo sin reponder algún post...

El tipo de dato si es el correcto y no solo sirve para imágenes... lo he utilizado hasta para guardar reportes (como uso fastreport) cosa de tenerlos centralizados

Este código lo usé hace rato para guardar la imágen que obtenia de una camara digital a la base de datos... el objeto JPEG es solo un TGPEGImage... la misma imágen del TImage pero procesada en un JPEG para mejorar el rendimiento en la carga de las imágenes cuando se presentaba en la web.

Código Delphi [-]
procedure TFrmCarnet.BtnCapturaClick(Sender: TObject);
  var
    Stream : TStream;
begin
  if FrmMain.DlgFotoCapturaExecute = mrOK then
  begin
    With QryCliente do
    begin
      Edit;
  Stream := CreateBlobStream(FieldByName('cli_imag'), bmReadWrite);
        JPEG.SaveToStream(Stream); //Aquí ya estaba asignado a la base de datos
        DBImgPhoto.Picture.Assign(JPEG); //Aquí lo mostraba en el Image del formulario
        //Que la imagen estuviera asignada al value del campo no significaba que se deplegara
        //En el formulario.... por eso tenia que hacer el segundo paso.
        Post; //Eso era todo.
      Refresh;
    end;
  end;
end;

lastimosamente no encontré el código para cuando hacia la consulta y mostrar la foto... espero te ayude.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #8  
Antiguo 04-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
movorack, se te saluda, no te pierdas
Responder Con Cita
  #9  
Antiguo 07-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
El problema persiste

Hola Foro:

Muchisimas gracias radenf, el componente se instaló muy bien, pero lastimosamente algo impide que se muestren las imagenes almacenadas. El código que incluye movorack no lo he probado, pues si bien no me muestra la imagen almacenada, no debo seguir, pues es muy importante este paso para el programa.

Ahora como bien dice Casimiro Notevi les pondría una parte del código, pero como no es nada complicado, es lo más estandar posible.

Es una ventana que contiene elementos estandares de Acceso a Datos:


Cuando me desplazo con el DBNavigator, debería mostrarme cuantas imagenes están almacenadas, como normalmente ocurre cuando se hacen en tablas planas. El código de esa ventana en sí no tiene nada especial, pues sin código debería mostrarme la imagen.




¿podrían continuar ayudándome?

Gracias a todos.
__________________
Alea iacta est

Última edición por PallyRS fecha: 07-12-2011 a las 17:05:36. Razón: Error al pegar información
Responder Con Cita
  #10  
Antiguo 07-12-2011
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Cita:
Empezado por PallyRS Ver Mensaje
el componente se instaló muy bien, pero lastimosamente algo impide que se muestren las imagenes almacenadas.
No entiendo por qué. Me imagino que conectaste el DBImage de tu form al Dataset y que tus imágenes son .jpg o .bmp.

Saludos
Responder Con Cita
  #11  
Antiguo 07-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por muy "simple" que sea el código, si no lo vemos y además no explicas NADA, ¿cómo quiéres que te ayudemos?, lo único que sabemos es que es todo muy simple, muy sencillo y muy normal, ¿y qué hacemos con eso?
Responder Con Cita
  #12  
Antiguo 08-12-2011
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Y además el tema de los campos blob de postgres (bytea) y oracle aveces dan estos problemas... porque he tenido el problema es que te plantee algo de como lo solucioné.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #13  
Antiguo 22-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
Post Estuve de Vacaciones

Hola Foro:

Estuve de vacaciones, por lo que no me había dado una vuelta por aquí.

Casimiro Notevi tienes toda la razón del mundo en cuanto a no haber puesto el código de la Unit en cuestión, por lo que lo haré ahora mismo.

randef: Si, la EDBimage y la DBImage están conectadas al campo correspondiente donde se almacena la imagen. La imagen es .JPG, no he probado con .BMP

Ahora cuando vean el código quisiera saber donde, y en que momento entraría a jugar el código puesto por movorack pues al parecer la solución esta por ahí, según he podido leer en la Web del PostgreSQL. Pero no acabo de arreglar algún detalle que me impide la inserción de las imagénes.

Código Delphi [-]
unit UnitImpresoras;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, RzEdit, RzDBEdit, RzLabel, RzCmboBx, RzDBCmbo,
  ExtCtrls, RzPanel, RzDBNav, DBCtrls, Menus, RzShellDialogs, EDBImage, DBActns,
  ActnList;

type
  TFormImpresoras = class(TForm)
    RzLabelMarcamodelo: TRzLabel;
    RzDBComboBoxLasert: TRzDBComboBox;
    RzDBEditImpresora: TRzDBEdit;
    RzLabelLasert: TRzLabel;
    RzLabelTonert: TRzLabel;
    RzDBEditTonert: TRzDBEdit;
    RzDBMemoImpresora: TRzDBMemo;
    RzDBNavigatorDatos: TRzDBNavigator;
    RzOpenDialogo: TRzOpenDialog;
    PopupMenu: TPopupMenu;
    Cargarimagen: TMenuItem;
    RzLabelDatos: TRzLabel;
    EDBImageImpresora: TEDBImage;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CargarimagenClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormImpresoras: TFormImpresoras;

implementation

uses UnitDataModulo, UnitFormInventarioPC;

{$R *.dfm}

procedure TFormImpresoras.CargarimagenClick(Sender: TObject);
var
  Stream: TStream;
begin
  DataModuleInventarioPC.ADOTableImpresora.Edit;
  Stream:=DataModuleInventarioPC.ADOTableImpresoraImagen;
  if RzOpenDialogo.Execute then EDBImageImpresora.Picture.LoadFromFile(RzOpenDialogo.FileName);
  DataModuleInventarioPC.ADOTableImpresora.Post;
end;

procedure TFormImpresoras.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DataModuleInventarioPC.ADOTableBitacora.InsertRecord([Date, Time, PC, Usuario,'Cerrado Clasificador de Impresoras']);
end;

procedure TFormImpresoras.FormShow(Sender: TObject);
begin
  DataModuleInventarioPC.ADOTableBitacora.InsertRecord([Date, Time, PC, Usuario,'Activado Clasificador de Impresoras']);
end;

end.


No sé donde poner esa parte del código de movorack donde hace alusión a una JPEG, ¿Me falta por declarar en uso alguna Unit que me está impidiendo realziar la operación correspondiente?

Gracias
__________________
Alea iacta est

Última edición por PallyRS fecha: 22-12-2011 a las 16:43:36.
Responder Con Cita
  #14  
Antiguo 23-12-2011
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Estimado PallyRS :

Poe el código que adjuntaste veo que te conectas a PostgrSql utilizando ADO. Yo utilizo Zeos y funciona perfectamente. Puede ser esa la diferencia que te impide ver las imágenes con el DBImage.

Saludos
Responder Con Cita
  #15  
Antiguo 23-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
Talking Solucionadoooooooooooooooooo (Al fin)

Hola Foro:

Pues como lo leen, mil gracias, ya solucioné, ¿Pues como?. Seguí el consejo de radenf y descargué los componentes ZeosDBO 6.6.6-stable. Ni que hablar del trabajo que pasé para descargarlo pues SourceForgue con todo lo Open Source que dicen que són para Cuba no nos dejan descargar nada, ni que fueramos marcianos, pero bueno, eso es política y no cabe en este magnifico Foro.

Incluso me ahorre par de lineas de código. Aparte de los cambios normales en los tipos de conexión y los tipos de tablas, el procedure Cargarimagenclic, cambió quedando ahora solamente así:

Código Delphi [-]
procedure TFormImpresoras.CargarimagenClick(Sender: TObject);
begin
  if RzOpenDialogo.Execute then EDBImageImpresora.Picture.LoadFromFile(RzOpenDialogo.FileName);
end;

La imagen se carga y se vizualiza muy bien.

Gracias a todos, pues todos ayudaron.

Al moderador ya puede dar como solucionado el Hilo este.
__________________
Alea iacta est
Responder Con Cita
  #16  
Antiguo 23-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Algunos paisanos tuyos, cuando necesitan algún programa de esos sitios, los bajamos nosotros y lo ponemos en nuestro FTP para que puedan descargarlos.
Así que ya sabes, para la próxima vez
Incluso recuerdo haber enviado algunos CDs con programas a un amigo cubano, que me los pidió, básicamente distribuciones Linux.
Responder Con Cita
  #17  
Antiguo 23-12-2011
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Smile

Encantado de haber podido ayudarte.
Saludos y muchas felicidades junto a tu familia y seres queridos en estas fiestas.
Responder Con Cita
  #18  
Antiguo 24-12-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Algunos paisanos tuyos, cuando necesitan algún programa de esos sitios, los bajamos nosotros y lo ponemos en nuestro FTP para que puedan descargarlos.
Así que ya sabes, para la próxima vez
Incluso recuerdo haber enviado algunos CDs con programas a un amigo cubano, que me los pidió, básicamente distribuciones Linux.
Se te olvidó añadir que esto es a cambio de una ronda de ron para todos.
__________________
Be water my friend.
Responder Con Cita
  #19  
Antiguo 28-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
Thumbs up Gracias

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Algunos paisanos tuyos, cuando necesitan algún programa de esos sitios, los bajamos nosotros y lo ponemos en nuestro FTP para que puedan descargarlos.
Así que ya sabes, para la próxima vez
Incluso recuerdo haber enviado algunos CDs con programas a un amigo cubano, que me los pidió, básicamente distribuciones Linux.
Muchísimas gracias, valientre desición la tuya decirlo público tu animo de cooperar. No todos son capaces de hacerlo. Pero apreciamos la ayuda venga de quien venga y de donde sea. Normalmente no me gusta estar molestando pero casi casi me vi pidiendo ayuda al foro para el componente, pues no encontraba la manera hasta que lo logré. Algunas cosas que son Freeware si puede ser que nos ayuden a optenerlas, pero es siempre y cuando no existan luego complicaciones para quienes nos tiendan la mano.

Por otra parte mi conexión es muy lenta, y cuando es necesario tener alguna imagen de CD DVD, no tenemos mas remedio que quedarnos con las ganas o que alguien nos ayude como acabas de explicar. Muy bien de tu parte.
__________________
Alea iacta est
Responder Con Cita
  #20  
Antiguo 28-12-2011
PallyRS PallyRS is offline
Miembro
 
Registrado: nov 2008
Ubicación: Nuevitas - Cuba
Posts: 43
Poder: 0
PallyRS Va por buen camino
Talking Felicidades igualmente

Cita:
Empezado por radenf Ver Mensaje
Encantado de haber podido ayudarte.
Saludos y muchas felicidades junto a tu familia y seres queridos en estas fiestas.
Gracias por todo. Igual te deseo que pases las fiestas de todos estos días de la forma más feliz que quieras. Hoy por lo menos ya me espera una caja de cerveza TINIMA, y unas costillas de puerco azadas en casuelas. Brindare por este Foro en la primera botella, porque despues de varias no se de que me acuerde o por que brinde.

Saludos

FELIZ AÑO NUEVO A TODOS

__________________
Alea iacta est
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Visualizar Imagenes reinier Gráficos 3 12-04-2008 11:40:15
Visualizar imagenes grandes fjcg02 Gráficos 2 20-11-2006 16:33:36
Visualizar Imagenes Jpeg Legolas Gráficos 1 17-11-2003 21:14:23
Visualizar imágenes en RxRichEdit SCH Varios 3 17-09-2003 19:52:42
Visualizar imagenes aig Servers 0 03-06-2003 10:51:39


La franja horaria es GMT +2. Ahora son las 16:58:54.


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
Copyright 1996-2007 Club Delphi