¿Como se guardan imagenes en Mysql desde xharbour?

Post Reply
User avatar
GuillermoMtz
Posts: 14
Joined: Sat Sep 24, 2011 5:42 pm
Location: Chihuahua, Chihuahua, Mexico
Contact:

¿Como se guardan imagenes en Mysql desde xharbour?

Post by GuillermoMtz »

Buen Dia compañeros. :D

Recientemente ando con un proyecto donde tengo una base de datos en MySQL, estoy usando Tmysql con xharbour.
El tipo de campo que tengo es Blob, si pude hacer que me grabara las imagenes pero usando longblob, el problema de esto
es que al momento de hacer un respaldo de la base de datos y al querer restaurarla marca un error en la tabla donde se
encuentran las imagenes. Necesito saber como guardar imagenes en campos blob, ya que cuando uso el browser de Mysql
para editar la informacion no me muestras la imagen guardada solo el codigo binario de esta, en cambio si la guardo
directamente desde el browser de mysql si la muestra.

Image
Por ejemplo aqui agregue una imagen directamente desde el browser de mysql, pero desde mi programa no se muestra la
imagen solo el codigo binario.

Necesito saber como convertir la imagen para poder guardarla y tambien como llamar la imagen una vez guardada.

Gracias de antemano, en caso de que ya exista esta informacion en el foro les pido una disculpa. :oops: Ya estube buscando en
en el foro y no encontre algo relacionado a esto. :roll:

Saludos. :mrgreen:
_____________________________________________

NxTSolutions
Soluciones Integrales en Informatica
Sitio Web http://www.nxtsolutions.com.mx/
_____________________________________________
devtuxtla
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: ¿Como se guardan imagenes en Mysql desde xharbour?

Post by devtuxtla »

Hola Guillermo.

La forma en que estas guardando la imagen en un cambo Blob es facil, MySql lo hace en forma correcta.

El problema se presenta cuando haces un respaldo o restauracion de la tabla si usas el administrador de MySql.

Este problema lo resolvi, usando SqlYog, la forma en que se hacen los respaldos y las restauraciones en SQLyog es muy buena, solo que es de paga.

Para manejar las imagenes lo haces definiendo un campo memo y lo lees y lo escribes como tal.

Espero te sirve la infromacion.

Saludos
Visite Chiapas, el paraiso de México.
User avatar
GuillermoMtz
Posts: 14
Joined: Sat Sep 24, 2011 5:42 pm
Location: Chihuahua, Chihuahua, Mexico
Contact:

Re: ¿Como se guardan imagenes en Mysql desde xharbour?

Post by GuillermoMtz »

devtuxtla wrote:Hola Guillermo.

La forma en que estas guardando la imagen en un cambo Blob es facil, MySql lo hace en forma correcta.

El problema se presenta cuando haces un respaldo o restauracion de la tabla si usas el administrador de MySql.

Este problema lo resolvi, usando SqlYog, la forma en que se hacen los respaldos y las restauraciones en SQLyog es muy buena, solo que es de paga.

Para manejar las imagenes lo haces definiendo un campo memo y lo lees y lo escribes como tal.

Espero te sirve la infromacion.

Saludos
Hola Devtuxtla.

Gracias por la sugerencia pero no es la solucion que buscaba, el administrador de MySql si me esta haciendo los respaldos y restauracion correctamente
no eh tenido problemas con el, la imagen que guarde directamente desde el Browser Mysql la pude restaurar una vez que hice un respaldo de este, borrando
la base de datos para verificar de que sea asi. El problema es como convertir la imagen de manera que se almacene en la base de datos y poder hacer un
respaldo y restauracion sin ningun problema.

Ya estube navegando un poco mas por el foro y encontre esto:
http://forums.fivetechsupport.com/viewt ... 883#p76883

Pero no lo comprendi del todo bien :| si me pueden ayudar con un ejemplo se los agradeceria.

Algo asi es lo que tengo , usando un objeto image:

Code: Select all

Function cargar_image( limage,lnumero )
   lvar:="gcFile"+lnumero
   PUBLIC &lvar := cGetFile( "Bitmap (*.bmp)| *.bmp|" +         ;
                             "DIB   (*.dib)| *.dib|" +          ;
                             "PCX   (*.pcx)| *.pcx|"  +         ;
                             "JPEG  (*.jpg)| *.jpg|" +          ;
                             "GIF   (*.gif)| *.gif|"  +         ;
                             "TARGA (*.tga)| *.tga|" +          ;
                             "RLE   (*.rle)| *.rle|" +          ;
                             "All Files (*.*)| *.*"             ;
                            ,"Please select a image file", 4 )

   if ! Empty( &lvar ) .and. File( &lvar )
      limage:LoadImage(,&lvar )  // Carga la imgaen al objeto, y la muestra despues de refrescar
      limage:refresh()
   endif

   lima:=memoread(&lvar)
   wimagengrabar := limage:FILoadFromMemory(,&lvar )  // Supuestamente en el ejemplo que vi en el foro esto carga la imagen para poder guardarla pero me marca error
   *Se graba la imagen en la carpeta temporal de imagenes
   memowrit(curdrive()+":\"+curdir()+"\imagenes\"+lvar+".jpg",lima)
   
   // Este es el query para guardar la imagen, son campos de tipo BLOB
   dbfupd := eje_query("INSERT INTO ihisresu VALUES('ABCD',1,'ESTUDIO',1,1,"+lima+","+lima+","+lima+" ")
   if dbfupd:lerror
      msginfo('El Resultado no se pudo Guardar'+dbfupd:error())
   endif

return nil
Bueno espero y puedan ayudarme gracias. Saludos :D
_____________________________________________

NxTSolutions
Soluciones Integrales en Informatica
Sitio Web http://www.nxtsolutions.com.mx/
_____________________________________________
Post Reply