Insert Insertar ar imagen imagen en tabla tabla MySQL MySQL con con Delphi Delphi Foro Foro Proyecto Proyecto AjpdS AjpdSoft oft
http:/ http://ww /www w.ajpds .ajpdsoft oft.co .com/m m/modu odules les.ph .php?n p?name ame=Fo =Foros ros&fi &file= le=vie viewto wtopic pic&.. &....
PayPal Bolivia Pague y Reciba Pagos con PayPal. Es Fácil y Seguro. Regístrese Hoy! www.paypal.com/bo
Nuevo usuario
Inicio : Descargas : Trucos VB.Net, PHP, Delphi : Manuales : Código Fuente
Principal
Me gusta
· Inicio · Buscar · Contactar · Descargas · Enciclopedia · Estadísticas · Eventos · Foros · Manuales, Artículos · Nuestra historia Quiénes es somo s · Quién · Recomiéndanos · Temas · Top 10 · Trucos Delphi, PHP, Java, Visual Studio · Tu cuenta
290
Proyecto AjpdSoft: Foros
I nsert nser tar ar im age n en t abla MySQL con D elphi elph i
Foros de discus ión ión » Borlan d D elph i, C odeg ear D elph i .N et V e r t e m a a n t e r i o r :: Ver t ema siguie nte
Au t o r varios
Magnífico usuario Registrado: Registrado: Oct 10, 20 06 Mensajes: 1265
D esc esca argas rgas
Últimas Descargas · AjpdSoft Socket VB.Net
· AjpdSoft Lector Códigos de Barras Android paquete apk para instalar · AjpdSoft Lector Códigos de Barras Android en Goo gle App Inventor Inventor · AjpdSoft Envío EMail SSL Términos Término s en encic ciclope loped dias ias Visual Basic .Net Últimos ·· Código HTML y JavaScrip JavaScriptt repquota para mostrar imagen Enc.: Comandos Linuxxen Linu ventana Flash · quotacheck · AjpdSoft InsertarLinu Evento Enc.: Comandos Linux x Google Calendar VB.Net · quotaoff · AjpdSoft AgendaLinu Enc.: Comandos Linuxx Telefónica Android · quotaon · AjpdSoft ProcesoLinu segundo segund o Enc.: Comandos Linux x plano con progreso VB.Net · quota · Formulario inicioLinu sesión Enc.: Comandos Linux x en Delphi y MySQL, validar ·usuario opensslen LDAP Enc.: Comandos Linu Linuxx · AjpdSoft Reiniciar Autoincremento to Paradox ·Autoincremen w CódigoComandos Fuente Delphi Enc.: Linuxx Linu ·· AjpdSoft Reiniciar Apagar yes equipo equip oComandos remo to CóLinu digo dig ox Enc.: Linux Fuente Delphi Even Event tos os · zenity
Enc.: Comandos Linux Linu x D iciembr iciemb re e Lo m ás descargado descargad o ·· AjpdSoft Regi Registro stro de OCX biosdecode M Fuente M J Delphi V S yDDLLLComandos Código Enc.: Linuxx Linu
1
2 3
·· AjpdSoft Generador de lprm 4 5 de6barras 7 8 9 10 códigos Enc.: Comandos Linu Linuxx
11 12 13 14 15 16 17 17
·· jobs AjpdSoft Conversor Hexadecimal, 18 1Comandos 9 20 2Decimal, 1 Linu 22 x23 24 24 Enc.: Linux Texto - Código Fuente 2lpc 5 26 27 28 29 30 31 31 ·Delphi
Asunto:
Insertar imagen en tabla MySQL con Delphi
Estoy desarrollando una aplicación de Facturación, tengo una tabla de usuarios, con los datos típicos: nick, contraseña, nombre, etc. Quiero añadirle a esta ventana la funcionalidad de insertar una foto por usuario y que aparezca al mostrar la ventana.
¿Qué tipo de datos debo poner en la tabla de MySQL para guardar la foto? quiero guardar la foto en la tabla, no quiero guardarla en una carpeta del equipo pues quiero que sea accesible desde fuera de la oficina.
· AjpdSoft Acceso nativo MySQL VB.Net
· AjpdSoft InfoWifi Android
Men saj e
Utilizo Delphi 6 y MySQL como base de datos.
· AjpdSoft Acceso nativo MySQL enlazado VB.Net
· AjpdSoft Envío SMS puerto serie módem GSM VB.Net
66
Publicado: Vie Mar 12, 2010 11:45 am alonsojpd
Administrador/Moderador
Asunto:
Re: Insertar imagen en tabla MySQL con Delphi
varios escribió:
Registrado: Registrado: Sep 16, 20 03 Mensajes: 1853 Ubicación: España
Estoy desarrollando una aplicación de Facturación, tengo una tabla de usuarios, con los datos típicos: nick, contraseña, nombre, etc. Quiero añadirle a esta ventana la funcionalidad de insertar una foto por usuario y que aparezca al mostrar la ventana. Utilizo Delphi 6 y MySQL como base de datos. ¿Qué tipo de datos debo poner en la tabla de MySQL para guardar la foto? quiero guardar la foto en la tabla, no quiero guardarla en una carpeta del equipo pues quiero que sea accesible desde fuera de la oficina.
Puedes hacer lo siguiente: 1. En la tabla de MySQL, el tipo de datos a utilizar para el campo que contendrá la foto es LONGBLOB. 2. En el formulario de inserción de la foto, si quieres utilizar el formato JPEG, puedes utilizar el siguiente código. En el formulario debes añadir un TButton (nosotros lo hemos llamado "bInsertarFoto"), un TImage (nosotros lo hemos llamado "imgFoto") y un TOpenPictureDialog (nosotros lo hemos llamado "dlAbrirFoto"). En el evento Click del TButton añades: Código: procedure TformGUsuario.bInsertarFotoClick(Sender: TObject); var fs : TMemoryStream; imgJPG : TJpegImage; begin if dlAbrirFoto.Execute then begin imgJPG := TJpegImage.create; fs := TMemoryStream.Create; try imgJPG.LoadFromFile(dlAbrirFoto.FileName); imgJPG.SaveToStream(fs); fs.Seek(0, soFromBeginning); try imgFoto.Picture.Assign(imgJPG); tablaUsuarioFoto.LoadFromStream(fs); finally fs.free; end;
Enc.: Comandos Linu Linuxx · AjpdSoft Aviso cambio IP
1d 6
19/12/2011 18 37
Insertar imagen en tabla MySQL con Delphi Foro Proyecto AjpdSoft
C onse jos
http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&...
except on E : Exception do begin MessageDlg('Asegúrese de que la imagen seleccionada es de ' + ' tipo JPEG con formato correcto. ' + chr(13) + chr(13) + 'El error concreto: ' + E.ClassName + ': ' + E.Message, mtError, [mbOK], 0); end; end; end; end;
Ten en cuenta que: 1. En el USES del formulario debes añadir "jpg", algo así: Código: uses Messages, SysUtils, Classes, Graphics, Controls, Dialogs, StdCtrls, DBCtrls, Buttons, ExtCtrls, db, DBTables, forms, ComCtrls, variants, windows, Mask, ExtDlgs, jpeg; type ...
2. Ten en cuenta también que "tablaUsuarioFoto" es el nombre del campo "Foto" de la tabla "tablaUsuario" (un componente de tipo TTable). Hemos añadido el campo "foto" a la tabla "usuario" de MySQL y lo hemos agregado al componente "TTable" de Delphi:
Lenguajes
Selecciona Idioma de la Interfaz:
Spanish
Webs recomendadas
Orasite.com
Coloca tu web aquí
Lan guage english
English
Publicado: Vie Mar 12, 2010 12:03 pm varios
Magnífico usuario
Asunto:
Re: Insertar imagen en tabla MySQL con Delphi
alonsojpd escribió:
Registrado: Oct 10, 20 06 Mensajes: 1265
Puedes hacer lo siguiente: 1. En la tabla de MySQL, el tipo de datos a utilizar para el campo que contendrá la foto es LONGBLOB. 2. En el formulario de inserción de la foto, si quieres utilizar el formato JPEG, puedes utilizar el siguiente código. En el formulario debes añadir un TButton (nosotros lo hemos llamado "bInsertarFoto"), un TImage (nosotros lo hemos llamado "imgFoto") y un T OpenPictureDialog (nosotros lo hemos llamado "dlAbrirFoto"). En el evento Click del TButton añades: Código: procedure TformGUsuario.bInsertarFotoClick(Sender: TObject); var fs : TMemoryStream; imgJPG : TJpegImage; begin if dlAbrirFoto.Execute then begin imgJPG := TJpegImage.create; fs := TMemoryStream.Create; try imgJPG.LoadFromFile(dlAbrirFoto.FileName); imgJPG.SaveToStream(fs); fs.Seek(0, soFromBeginning); try
2d 6
19/12/2011 18 37
Insertar imagen en tabla MySQL con Delphi Foro Proyecto AjpdSoft
http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&...
imgFoto.Picture.Assign(imgJPG); tablaUsuarioFoto.LoadFromStream(fs); finally fs.free; end; except on E : Exception do begin MessageDlg('Asegúrese de que la imagen seleccionada es de ' + ' tipo JPEG con formato correcto. ' + chr(13) + chr(13) + 'El error concreto: ' + E.ClassName + ': ' + E.Message, mtError, [mbOK], 0); end; end; end; end;
Ten en cuenta que: 1. En el USES del formulario debes añadir "jpg", algo así: Código: uses Messages, SysUtils, Classes, Graphics, Controls, Dialogs, StdCtrls, DBCtrls, Buttons, ExtCtrls, db, DBTables, forms, ComCtrls, variants, windows, Mask, ExtDlgs, jpeg; type ...
2. Ten en cuenta también que "tablaUsuarioFoto" es el nombre del campo "Foto" de la tabla "tablaUsuario" (un componente de tipo TTable). Hemos añadido el campo "foto" a la tabla "usuario" de MySQL y lo hemos agregado al componente "TTable" de Delphi:
Ok, me funciona la inserción, me aparece la imagen en el TImage y, supongo, se inserta en la tabla de MySQL en el campo "foto" de tipo LONGBLOB. Pero ¿cómo muestro la imagen, como la obtengo de la tabla y la muestro en el formulario para el registro actual? Publicado: Vie Mar 12, 2010 12:08 pm alonsojpd
Administrador/Moderador
Asunto:
Re: Insertar imagen en tabla MySQL con Delphi
varios escribió:
Registrado: Sep 16, 20 03 Mensajes: 1853 Ubicación: España
Ok, me funciona la inserción, me aparece la imagen en el TImage y, supongo, se inserta en la tabla de MySQL en el campo "foto" de tipo LONGBLOB. Pero ¿cómo muestro la imagen, como la obtengo de la tabla y la muestro en el formulario para el registro actual?
En el evento "FormCreate" puedes añadir: Código: procedure TformGUsuario.FormCreate(Sender: TObject); var fs : TMemoryStream; imgJPG : TJpegImage; begin if not tablaUsuario.FieldByName('foto').IsNull then begin imgJPG:= TJpegImage.create; fs := TMemoryStream.Create(); tablaUsuarioFoto.SaveToStream(fs); fs.Seek(0, soFromBeginning); imgJPG.LoadFromStream(fs); try imgFoto.Picture.Assign(imgJPG); finally fs.free; end; end; end;
Publicado: Vie Mar 12, 2010 6:11 pm agustinbus
Excelente usuario Registrado: Apr 17, 200 9 Mensajes: 38
Asunto:
Otra manera diferente
Yo lo hago de una manera mas simple, aunque no se si mejor. Creo un campo LONGBLOB en mi tabla sql por ejemplo: Imagen. Luego haces dobre clic en el ADOQuery que se refiere a la tabla que tiene el campo Imagen y
3d 6
19/12/2011 18 37
Insertar imagen en tabla MySQL con Delphi Foro Proyecto AjpdSoft
http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&...
aparece lo siguiente (sigue los pasos de la imagen): DONDE DICE "CLIC DERECHO Y APARECE ESTO", hay que hacer clic derecho y seleccionar New Field
Una vez hecho esto vamos al evento onclick de un boton por ejemplo y ponemos el siguiente codigo: Código: ADOQuery1.Open; ADOQuery1.Insert; if OpenPictureDialog1.FileName <>'' then begin ADOuery1IMAGEN.LoadFromFile (OpenPictureDialog1.FileName); end; ADOQuery1.Post
De esa manera lo almacenamos en la base de datos y para poder mostrarlo en un TImage ponemos este codigo: Código: if ADOQuery1.FieldByName ('IMAGEN').AsVariant <> '' then begin Image1.Picture.Bitmap.Assign(ADOQuery1IMAGEN ); end else begin Form1.Image1.Picture := Nil; end;
ESTE EJEMPLO SOLO SIRVE PARA IMAGENES .BMP!!! Publicado: Vie Mar 12, 2010 7:31 pm alonsojpd
Administrador/Moderador
Asunto:
Re: Otra manera diferente
agustinbus escribió:
Registrado: Sep 16, 20 03 Mensajes: 1853 Ubicación: España
Yo lo hago de una manera mas simple, aunque no se si mejor. Creo un campo LONGBLOB en mi tabla sql por ejemplo: Imagen. Luego haces dobre clic en el ADOQuery que se refiere a la tabla que tiene el campo Imagen y aparece lo siguiente (sigue los pasos de la imagen): DONDE DICE "CLIC DERECHO Y APARECE ESTO", hay que hacer clic derecho y seleccionar New ...
Muchísimas gracias Agustinbus por tu aportación. Efectivamente, si no es necesario utilizar JPG, el proceso es mucho más sencillo, tal y como nos indicas, incluso es posible utilizar el componente TDBImage, con el que no es necesario programar nada para que muestre la imagen. Es más, este componente admite copiar y pegar, es decir, se puede pegar una imagen en el TDBImage sin código fuente, con Control C y Control V. Pero el inconveniente es que este procedimiento sólo vale para imágenes BMP. Así pues, lo que hemos expuesto nosotros más lo que ha expuesto Agustinbus servirá para que el
4d 6
19/12/2011 18 37
Insertar imagen en tabla MySQL con Delphi Foro Proyecto AjpdSoft
http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&...
usuario tenga las dos posibilidades. Publicado: Dom Mar 14, 2010 10:03 am agustinbus
Excelente usuario
Asunto:
Re: Otra manera diferente
alonsojpd escribió:
Registrado: Apr 17, 200 9 Mensajes: 38
agustinbus escribió:
Yo lo hago de una manera mas simple, aunque no se si mejor. Creo un campo LONGBLOB en mi tabla sql por ejemplo: Imagen. Luego haces dobre clic en el ADOQuery que se refiere a la tabla que tiene el campo Imagen y aparece lo siguiente (sigue los pasos de la imagen): DONDE DICE "CLIC DERECHO Y APARECE ESTO", hay que hacer clic derecho y seleccionar New ...
Muchísimas gracias Agustinbus por tu aportación. Efectivamente, si no es necesario utilizar JPG, el proceso es mucho más sencillo, tal y como nos indicas, incluso es posible utilizar el componente TDBImage, con el que no es necesario programar nada para que muestre la imagen. Es más, este componente admite copiar y pegar, es decir, se puede pegar una imagen en el TDBImage sin código fuente, con Control C y Control V. Pero el inconveniente es que este procedimiento sólo vale para imágenes BMP. Así pues, lo que hemos expuesto nosotros más lo que ha expuesto Agustinbus servirá para que el usuario tenga las dos posibilidades.
Asi es! Antes utilizaba DBImage que es muchisimo mas facil, pero si mal no recuerdo, creo que el DBImage no tiene la propiedad proportional, que es para mantener las proporciones de la imagen cuando agrandamos o achicamos el componente y la imagen no se deforme. Por esa razon utilizo Image en vez de DBImage. Todas son opciones válidas, dependiendo de lo que uno necesite. Publicado: Dom Mar 14, 2010 5:16 pm alonsojpd
Administrador/Moderador Registrado: Sep 16, 20 03 Mensajes: 1853 Ubicación: España
Asunto:
Re: Otra manera diferente
Por rizar el rizo y por si le sirve a alguien, indico cómo cargar una imagen de un TTable (base de datos) en un TImage sin necesidad de agregar el campo al TTable: Código: uses ... jpeg ...
var fs : TMemoryStream; imgJPG : TJpegImage; blobF : TBlobField; begin //foto if not tabla.FieldByName('foto').IsNull then begin imgJPG := TJpegImage.create; fs := TMemoryStream.Create(); blobF := tabla.fieldbyname('foto') as TBlobField; blobF.SaveToStream(fs); fs.Seek(0, soFromBeginning); imgJPG.LoadFromStream(fs); try imgFoto.Picture.Assign(imgJPG); finally fs.free; end; end; ...
Donde: * tabla: componente TTable de Delphi. * imgFoto: componente de tipo TImage de Delphi. Publicado: Lun Mar 15, 2010 11:02 am Mostrar mensajes de anteriores: Todos los mensajes
El más antiguo primero
Ir Todas las horas son GMT - 1 Ho ras
Foros de discus ión » Borlan d D elph i, C odeg ear D elph i .N et
5d 6
19/12/2011 18 37
Insertar imagen en tabla MySQL con Delphi Foro Proyecto AjpdSoft
http://www.ajpdsoft.com/modules.php?name=Foros&file=viewtopic&...
Cambiar a: Borland Delphi, Codegear Delphi .Net
Ir
Key Pued e publicar nuevos temas en este fo ro N o p uede responder a temas en este foro N o p uede editar sus mensajes en este foro N o p uede borrar sus mensajes en este foro N o p uede votar en encuestas en este foro
Foros ©
Esta web N O C O NT I E N E ningún tipo de software malicioso (malware), por ello podéis descargar el código fuente de los programas gratuitamente
6d 6
19/12/2011 18 37