Imágenes en SQL Server 7

Quiero crear una tabla en SQL Server 7 en la que hay un campo que va a ser la foto de los clientes, entonces yo lo defino como un campo image, pero no sé como meter esa foto en ese campo, no es igual que en access que le dabas la ruta y en el momento que editas el campo se ve la imagen. ¿Cómo puedo hacerlo?
Respuesta
1
En SQL Server no es igual que con Access. Aquí este tipo de campos son BLOBs (Binary Large OBject o algo así). El cómo insertarlos no lo sé, ya que siempre los he utilizado a partir de conversiones de Access, pero a continuación te explicaré cómo visualizarlos, y a partir de ahí puede que averigües también cómo insertarlos.
El tag de la imagen podría ser:
<IMG SRC="imagen.asp?id=45">
Luego necesitas un archivo "imagen.asp" que buscará en la base de datos la foto nº 45 y la mostrará. El código sería más o menos como sigue:
<%
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
Response.ContentType = "image/bmp" 'Si la imagen es de otro formato hay que cambiarlo
set Connect=server.createobject("ADODB.Connection")
Connect.open "MiCadenaDeConexión"
strSQL="SELECT Imagen FROM MiTabla WHERE ID='" & request("id") & "'"
set prs=connect.execute(strSQL)
Set Imagen=prs("Imagen")
FileLength = Imagen.ActualSize
BlockSize = 4096
NumBlocks = FileLength \ BlockSize
LeftOver = FileLength Mod BlockSize
Response.BinaryWrite Imagen.GetChunk(LeftOver)
For intLoop = 1 To NumBlocks
Response.BinaryWrite Imagen.GetChunk(BlockSize)
Next
Response.End
prs.close
set prs=nothing
Connect.Close
set Connect = Nothing
%>
En el bucle puedes ver cómo se lee el contenido del campo BLOB con el método GetChunk. Para guardar debe ser similar...

5 respuestas más de otros expertos

Respuesta
1
Los datos de tipo image se almacenan como una cadena de bits y no son interpretados por SQL Server. Cualquier interpretación de los datos de una columna image debe ser realizada por la aplicación. Por ejemplo, una aplicación podría almacenar datos en una columna image con el formato BMP, TIFF, GIF o JPEG. Depende de la aplicación que lee los datos de la columna image reconocer o no el formato de los datos y mostrarlos correctamente. Todo lo que hace una columna image es proporcionar una ubicación para almacenar la secuencia de bits que conforman los datos de la imagen.
Respuesta
1
La verdad es que lo que quieres hacer no ed difícil, pero piensa que si quieres guardar una imagen en la base de datos te va a ocupar mucho espacio en la BBDD, lo que va a afectar al rendimiento de la misma.
Lo mejor que puedes hacer es almacenar en ese campo de la base de datos, la dirección física en l cual se encuentra la imagen en el servidor de páginas, y las imágenes las guardas todas en una carpeta de tu servidor de páginas.
Como ves, esto es más fácil y rapido que lo que querías hacer tu, espero que te haya quedado claro, en caso de que no sea así, dímelo y tratare de ayudarte en lo que pueda.
Recibe un saludo y suerte
Daivd
Respuesta
1
Aunque lo que quieres hacer es posible, no te lo recomiendo.
Lo que se suele utilizar en estos casos es que en este campo es mejor que indiques la ruta de llamada donde se encuentra la imagen, de esta forma te funcionará igualmente y no cargaras el rentimiento de la BDD ya que éstos campos almacenan en cada fila valores de 16 bytes.
Respuesta
1
Estos son métodos disponibles en ado y sirven para esto.
Si te sigue haciendo falta, respóndeme y te busco código que yo tengo por ahí.
Respuesta
Los campos imágenes no son como tales en SQL SERVER, los campos image, text y ntext son unos repositorios de datos de hasta 2 Gb los cuales pueden contener cualquier dato. En Access no se almacena la imagen, solo la dirección; si después de grabar la dirección de la imagen se mueve de sitio Access no la encuentra. Nunca he usado estas funciones en SQL SERVER, pero podrías comenzar por ver la ayuda de las funciones READTEXT y WRITETEXT

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas