Imagenes o archivos en Sql

09/03/2005 - 04:52 por Julio | Informe spam
El archivo se crea pero salen disparates. Intente con un
pdf y me dice que esta corrupted que verifique el decode.

Trate con uno en word . doc y salen cuadritos y me dice
file conversion y que elija un encoding.

Gracias

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
09/03/2005 - 05:27 | Informe spam
¿Como estas guardando los archivos en la BD?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 jULIO
09/03/2005 - 05:35 | Informe spam
Esto es lo que uso para insertar
Esa logica la copie y es para insertar imagenes en la
tabla de sql la cambide de typo imagen a binary

En este caso inserto un PDF
Este es el Sp

CREATE procedure Upload(@file as binary)
as
insert into tblfile (archivo) values (@file)
GO






Dim fs As New FileStream(Trim(txtImg.Text),
FileMode.Open)
Dim Data() As Byte = New [Byte](fs.Length) {}
fs.Read(Data, 0, fs.Length)

Dim con As New
System.Data.SqlClient.SqlConnection("server(local);database=dbtest;user id=sa;password=pass2;")
con.Open()
Dim cmd As New
System.Data.SqlClient.SqlCommand("Upload")
cmd.Connection = con
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@file", Data)
cmd.ExecuteNonQuery()
con.Close()
fs.Close()



La recupero


Dim con As New System.Data.SqlClient.SqlConnection
("server=(local);database=dbtest;user
id=sa;password=alpha1;")
con.Open()
Dim cmd As New System.Data.SqlClient.SqlCommand
("select * from tblfile")
cmd.Connection = con
cmd.CommandType = CommandType.Text
Dim da As New System.Data.SqlClient.SqlDataAdapter
(cmd)
Dim ds As New DataSet()
da.Fill(ds)
Dim str As String = ds.Tables(0).Rows(0).Item(2)

Dim bits As Byte() = CType(ds.Tables(0).Rows
(0).Item(1), Byte())

Dim archivo As New IO.FileStream
("c:\miarchivo.pdf", IO.FileMode.CreateNew)

Try

archivo.Write(bits, 0, bits.LongLength)

Finally
If Not archivo Is Nothing Then archivo.Close()

End Try





¿Como estas guardando los archivos en la BD?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


.

Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
09/03/2005 - 15:40 | Informe spam
Tu error es usar BINARY como tipo de dato ya que tiene un limite de 8K. Para
cualquier dato binario de longitud variable y que pueda sobrepasar los 8K
utiliza IMAGE. Pese al nombre, IMAGE permite guardar cualquier tipo de dato
binario, no solo imagenes, de hasta 2147483647 bytes (2GB).

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#4 Julio
09/03/2005 - 18:52 | Informe spam
Muchas gracias por tu ayuda a hora me funciona bien. Ese
detalle era el problema . El tipo de dato en el DB.


Gracias!!!!
Tu error es usar BINARY como tipo de dato ya que tiene


un limite de 8K. Para
cualquier dato binario de longitud variable y que pueda


sobrepasar los 8K
utiliza IMAGE. Pese al nombre, IMAGE permite guardar


cualquier tipo de dato
binario, no solo imagenes, de hasta 2147483647 bytes


(2GB).

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida