Imagen en campo image de SQL Server

15/11/2004 - 17:39 por MetalManiac | Informe spam
Hola amigos, tengo un problema. Basicamente tengo una tabla en la que hay
almacenados imágenes en un campo image y me interesa recuperar esas imágenes
y grabarlas en disco para poder manipularlas. Como puedo hacer esto?.

Las imagenes las obtengo de la base de datos mediante este código:

set rstAux = Server.createObject("Adodb.Recordset")
strsql = "SELECT [File name], [File Data], [Content Type] From ficheros"
rstAux.Open strsql, cnnConexion, 3, 3, adCmdText
do while not rstaux.EOF
Response.BinaryWrite(rstAux("file data"))
rstAux.MoveNext
loop
rstAux.Close
Set rstAux = nothing

Gracias
 

Leer las respuestas

#1 Alejandro Giardino
16/11/2004 - 22:41 | Informe spam
No puedo darte la respuesta precisa, pero te paso un código que yo utilizo
para guardar las imágenes en una base de datos con ASP.net:

Dim conn As New System.Data.SqlClient.SqlConnection
Dim br As BinaryReader = New
BinaryReader(Imagen.PostedFile.InputStream)
Dim photo() As Byte = br.ReadBytes(Imagen.PostedFile.ContentLength)
br.Close()
conn.ConnectionString ConfigurationSettings.AppSettings.Get("DBConnStr")
Dim Comm As New System.Data.SqlClient.SqlCommand
conn.Open()
Comm.Connection = conn
Comm.CommandText = "StConcesionariosAltaImagenCon"
Comm.CommandType = CommandType.StoredProcedure
Comm.Parameters.Add("@ImgConces", SqlDbType.Image,
photo.Length).Value = photo
Dim IdConcesionario As New
SqlClient.SqlParameter("@IdConcesionario", FIdConcesionario.Text)
Comm.Parameters.Add(IdConcesionario)
Comm.ExecuteNonQuery()

conn.Close()
Response.Redirect("editar.aspx?IdConcesionario=" &
Request.QueryString("IdConcesionario"))


Se me ocurre que tal vez si investigás un poco el objeto
Imagen.PostedFile.ContentLength tal vez puedas dar con la solución, fijate
que yo se lo puedo pasar directamente a la base con
Comm.Parameters.Add("@ImgConces", SqlDbType.Image, photo.Length).Value photo. Tal vez puedas hacer algo similar pero para almacenarla en disco.

Ojalá sirva
Alejandro

"MetalManiac" escribió en el mensaje
news:
Hola amigos, tengo un problema. Basicamente tengo una tabla en la que hay
almacenados imágenes en un campo image y me interesa recuperar esas


imágenes
y grabarlas en disco para poder manipularlas. Como puedo hacer esto?.

Las imagenes las obtengo de la base de datos mediante este código:

set rstAux = Server.createObject("Adodb.Recordset")
strsql = "SELECT [File name], [File Data], [Content Type] From ficheros"
rstAux.Open strsql, cnnConexion, 3, 3, adCmdText
do while not rstaux.EOF
Response.BinaryWrite(rstAux("file data"))
rstAux.MoveNext
loop
rstAux.Close
Set rstAux = nothing

Gracias


Preguntas similares