elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  JPG en bd MySQL?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: JPG en bd MySQL?  (Leído 2,089 veces)
ferlucas

Desconectado Desconectado

Mensajes: 77



Ver Perfil
JPG en bd MySQL?
« en: 28 Junio 2005, 21:08 pm »

En si es eso. Tengo que meter una imagen (JPG) dentro de un campo de una bd MySQL. El campo esta definido como MEDIUMBLOB.
Alquien puede darme una mano?.
Saludos.


En línea


- "Si no eres parte de la solución... eres parte del problema."
soplo
Ex-Staff
*
Desconectado Desconectado

Mensajes: 3.592

Debian rool'z


Ver Perfil
Re: JPG en bd MySQL?
« Respuesta #1 en: 29 Junio 2005, 13:28 pm »

Hola
Es un error meter imágenes en una base de datos.
Lo correcto es guardar las imágenes en un directorio y guardar en la base de datos la ubicación de esa imagen.

De esa forma solo guardas un string.

Un saludo


En línea

Callar es asentir ¡No te dejes llevar!
ferlucas

Desconectado Desconectado

Mensajes: 77



Ver Perfil
Re: JPG en bd MySQL?
« Respuesta #2 en: 30 Junio 2005, 23:25 pm »

Hola
Es un error meter imágenes en una base de datos.
Lo correcto es guardar las imágenes en un directorio y guardar en la base de datos la ubicación de esa imagen.

De esa forma solo guardas un string.

Un saludo

Encontre por otro lado la forma de hacerlo.
Hice la comparacion. La base de datos me quedo de 78MB. El directorio con las imagenes es de 77MB.
Viendo que es tan poca la diferencia, prefiero meter las imagenes dentro de la base de datos. De esta forma, ahorro en tiempo de back-up (al no tener que hacer 2 procesos por separado), si monto un sitio web con esa base de datos no tengo que subir las imagenes al server, si me borran las imagenes no hay problema (de hecho, al grabarlas se borran de HD), entre otros factores mas.
Igualmente, agradezco tu opiñíon. Pero, a mi criterio, no es ningún error.
Saludos y nuevamente, gracias.
En línea


- "Si no eres parte de la solución... eres parte del problema."
sexiboymx

Desconectado Desconectado

Mensajes: 66


Siempre hay algo mas que aprehender.....


Ver Perfil
Re: JPG en bd MySQL?
« Respuesta #3 en: 1 Julio 2005, 22:20 pm »

hola!!!
pasa el dato como le hiciste ;D
tengo pendiente un proyecto de catalogo de productos :-[ y quisiera hacer un intento con MySQL
aver si puedo  ??? 
En línea

ferlucas

Desconectado Desconectado

Mensajes: 77



Ver Perfil
Re: JPG en bd MySQL?
« Respuesta #4 en: 6 Julio 2005, 16:32 pm »

hola!!!
pasa el dato como le hiciste ;D
tengo pendiente un proyecto de catalogo de productos :-[ y quisiera hacer un intento con MySQL
aver si puedo  ??? 

estuve medio perdido por eso no lo hice antes. Suelo escribir la solucion que encontre para poder ayudar a los que tengan el mismo problema. La verdad, es que no me fijo si es lo mejor o no, me fijo en que es lo que piden. Independientemente de mi criterio.
Bueno... paso los codigos de como lo hice.

Antes que nada, en la tabla de la bd MySQL debemos definir un campo como LONGBLOB (lo habia definido como BLOB pero me cortaba la imagen).

Citar
Para grabar las imagenes
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ms As New ADODB.Stream

cn.ConnectionString = "PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 3.51.06 Driver};SERVER=server_name_or_ip;DATABASE=db_name;UID=user_id;PWD=user_pass;OPTION=16427;"
cn.Open

Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM tabla WHERE id=1" 'registro a modificar
rs.Open

ms.Type = adTypeBinary
ms.Open
ms.LoadFromFile (Path y nombre de la imagen)
rs.Fields("imagen").Value = ms.Read
rs.Update
rs.Close
ms.Close
cn.Close
Set ms = Nothing
Set rs = Nothing
Set cn =  Nothing

Citar
Para leer la imagen
'En este caso, la mostramos en un PictureBox
'Lo que hacemos es generar una imagen.jpg temporal
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim ms As New ADODB.Stream

cn.ConnectionString = "PROVIDER=MSDASQL.1;DRIVER={MySQL ODBC 3.51.06 Driver};SERVER=server_name_or_ip;DATABASE=db_name;UID=user_id;PWD=user_pass;OPTION=16427;"
cn.Open

Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.CursorType = 3
rs.LockType = 3
rs.Source = "SELECT * FROM tabla WHERE id=1" 'registro a modificar
rs.Open
ms.Type = adTypeBinary
ms.Open
ms.Write rsImg.Fields("imagen").Value
ms.SaveToFile (Path y nombre de JPG temporal), adSaveCreateOverWrite
Picture1.Picture = LoadPicture(Path y nombre de JPG temporal)
En línea


- "Si no eres parte de la solución... eres parte del problema."
soplo
Ex-Staff
*
Desconectado Desconectado

Mensajes: 3.592

Debian rool'z


Ver Perfil
Re: JPG en bd MySQL?
« Respuesta #5 en: 7 Julio 2005, 14:50 pm »

Hola
Debo decir que me sigue pareciendo un mal camino. Nunca es recomendable insertar imágenes en registros de una base de datos. Una cosa es que se pueda hacer y otra es el rendimiento posterior.

No acabo de verle la ventaja a tener una imagen en un campo de una base de datos o tener en ese campo un string que indica donde está la imagen que se quiere cargar. El resultado es el mismo, cuesta lo mismo y tal, pero bueno ...

Un saludo
En línea

Callar es asentir ¡No te dejes llevar!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines