Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Insertar una imagen en el SQL Server

Estas en el tema de Insertar una imagen en el SQL Server en el foro de SQL Server en Foros del Web. Hola, si una imagen no es como un string o como un numero, como puedo hacer para elaborar una sentencia insert donde uno de los ...
  #1 (permalink)  
Antiguo 24/08/2006, 13:47
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Insertar una imagen en el SQL Server

Hola, si una imagen no es como un string o como un numero, como puedo hacer para elaborar una sentencia insert donde uno de los campos es imagen
  #2 (permalink)  
Antiguo 24/08/2006, 14:06
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Tienes que usar el tipo de datos Binary/Blob, los cuales no se manejan como el resto de los tipos (asignación con "="). En esos tipos de datos utilizas funciones especiales para manejo de datos binarios (revisa la ayuda/BOL).

Siempre leerás que no es recomendado insertar las imgs en la DB, porque crean framentación y bajo desempeño. Por eso mismo es que personalmente nunca lo he utilizado (tampoco nunca me he visto en la necesidad de).
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 24/08/2006, 16:32
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Ok... gracias Mithrandir.... tonces ni para que meterse con ello. Tocará guardar la ruta del archivo fisico
  #4 (permalink)  
Antiguo 24/08/2006, 16:33
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Por cierto, yo pensaba que para guardar una imagen el tipo de dato tenia que ser Image
  #5 (permalink)  
Antiguo 24/08/2006, 16:35
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Disculpa amigo gran conocedor del querido SQL Server, no encuentro un tipo de dato llamado Binary/Blob
  #6 (permalink)  
Antiguo 25/08/2006, 08:44
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Tanto (n)text, (var)binary e image son tipos de datos binarios.
Cita:
Iniciado por BOL
Binary Strings
binary
Fixed-length binary data with a maximum length of 8,000 bytes.

varbinary
Variable-length binary data with a maximum length of 8,000 bytes.

image
Variable-length binary data with a maximum length of 2^31 - 1 (2,147,483,647) bytes.
BLOB es el equivalente en otros motores y lenguajes.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 25/08/2006, 14:07
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Entonces para hacer un insert en la sentencia debo meter puros 0 y 1

De los tres datos el optimo supongo que es image ya que es variable y tiene mas capacidad
  #8 (permalink)  
Antiguo 28/08/2006, 09:09
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cita:
Iniciado por Developer9 Ver Mensaje
Entonces para hacer un insert en la sentencia debo meter puros 0 y 1
Si, pero desde ese punto de vista SIEMPRE metes unos y ceros, independientemente del tipo de dato. Desde el punto de vista del programador, existen funciones que te permiten manejar los volúmenes de datos de manera abstracta, simplemente no esperes usar = para asignarlos a una variable porque (al menos en SQL Server) los datos binarios se manejan mediante funciones especiales.
Cita:
De los tres datos el optimo supongo que es image ya que es variable y tiene mas capacidad
Si, diría lo mismo.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #9 (permalink)  
Antiguo 29/08/2006, 11:57
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Recomendación

Entendido todo lo dicho, una última cuestión, según comentaste nunca has trabajado con imagenes, si te tocara hacerlo, como lo harías

guardar la ruta de donde está la imagen?
  #10 (permalink)  
Antiguo 31/08/2006, 11:53
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Dependiendo de la aplicación. Procuraría tener la imagen por fuera a toda costa. Pero existen situaciones donde eso no es posible.

En esos casos es cuando ya vería la manera de meterla dentro de la propia DB.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #11 (permalink)  
Antiguo 02/09/2006, 02:54
 
Fecha de Ingreso: enero-2004
Mensajes: 310
Antigüedad: 20 años, 3 meses
Puntos: 0
si tienes un volumen grande de imágenes, piensa bien el tema de ponerlas en Base de datos. Tenerlas en la base de datos, entre otras puede provocarte:
Problemas de espacio en Base de datos, problemas para realizar los backup's (pesan demasiado), problemas para la carga del servidor sql server (si las tienes fuera del propio servidor de BD's, siempre puedes tener un servidor exclusivo de fotos), también puedes tener problemas de concurrencia y de lecturas y escrituras de discos, al tener que servir imagenes el servidor SQL va mucho más ocupado y "cansado"
__________________
Un saludo,
Trucos
Videos
  #12 (permalink)  
Antiguo 02/09/2006, 19:17
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Chuzo... no puedo creer que todo eso le pueda pasar a mi querido SQL Server
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:17.