Campo "IMAGE" con documentos...!

28/10/2005 - 16:47 por AlejoR | Informe spam
Que tal grupo.
Lei unos post mas abajo, ventajas y desventajas de guardar imagenes
digitalizadas en la base de datos, en un campo image.
Tengo el mismo dilema, solo que con documentos. Estoy guardando documentos
en un campo image, y luego recuperarlos, generando el archivo y mostrandolo
en la aplicacion contenedora.
Ahora, quiero preguntarles si tienen problema con el tamaño de las imagenes
que estan almacenando. Porque con los documentos, al generar de nuevo el
archivo a disco, cuando son de mas de 200k el archivo se daña y no se puede
abrir.

Como hace para que pueda leer y generar los archivos de casi cualquier
tamaño,
Gracias por sus apreciaciones!

Preguntas similare

Leer las respuestas

#1 Maxi
28/10/2005 - 17:02 | Informe spam
Hola, yo no he tenido esos problemas. Que version de sql y service pack
usas?


Salu2
Maxi [MVP SQL SERVER]


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Lei unos post mas abajo, ventajas y desventajas de guardar imagenes
digitalizadas en la base de datos, en un campo image.
Tengo el mismo dilema, solo que con documentos. Estoy guardando documentos
en un campo image, y luego recuperarlos, generando el archivo y
mostrandolo en la aplicacion contenedora.
Ahora, quiero preguntarles si tienen problema con el tamaño de las
imagenes que estan almacenando. Porque con los documentos, al generar de
nuevo el archivo a disco, cuando son de mas de 200k el archivo se daña y
no se puede abrir.

Como hace para que pueda leer y generar los archivos de casi cualquier
tamaño,
Gracias por sus apreciaciones!

Respuesta Responder a este mensaje
#2 AlejoR
28/10/2005 - 17:09 | Informe spam
Y Dice:
SQL Server 2000 Developer Edition 8.00.760 (SP3)




"Maxi" escribió en el mensaje
news:%
Hola, yo no he tenido esos problemas. Que version de sql y service pack
usas?


Salu2
Maxi [MVP SQL SERVER]


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Lei unos post mas abajo, ventajas y desventajas de guardar imagenes
digitalizadas en la base de datos, en un campo image.
Tengo el mismo dilema, solo que con documentos. Estoy guardando
documentos en un campo image, y luego recuperarlos, generando el archivo
y mostrandolo en la aplicacion contenedora.
Ahora, quiero preguntarles si tienen problema con el tamaño de las
imagenes que estan almacenando. Porque con los documentos, al generar de
nuevo el archivo a disco, cuando son de mas de 200k el archivo se daña y
no se puede abrir.

Como hace para que pueda leer y generar los archivos de casi cualquier
tamaño,
Gracias por sus apreciaciones!





Respuesta Responder a este mensaje
#3 Gustavo Larriera [MVP]
28/10/2005 - 17:38 | Informe spam
Danos más detalles de cómo haces cuando grabas los documentos. Por allí debe
estar el problema.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"AlejoR" wrote in message
news:e$
Y Dice:
SQL Server 2000 Developer Edition 8.00.760 (SP3)




"Maxi" escribió en el mensaje
news:%
Hola, yo no he tenido esos problemas. Que version de sql y service pack
usas?


Salu2
Maxi [MVP SQL SERVER]


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Lei unos post mas abajo, ventajas y desventajas de guardar imagenes
digitalizadas en la base de datos, en un campo image.
Tengo el mismo dilema, solo que con documentos. Estoy guardando
documentos en un campo image, y luego recuperarlos, generando el archivo
y mostrandolo en la aplicacion contenedora.
Ahora, quiero preguntarles si tienen problema con el tamaño de las
imagenes que estan almacenando. Porque con los documentos, al generar de
nuevo el archivo a disco, cuando son de mas de 200k el archivo se daña y
no se puede abrir.

Como hace para que pueda leer y generar los archivos de casi cualquier
tamaño,
Gracias por sus apreciaciones!









Respuesta Responder a este mensaje
#4 AlejoR
28/10/2005 - 18:11 | Informe spam
Ok, aqui va, espero ser claro y no muy extenso!

En una pagina web se solicita el nombre del archivo. Al grabar llamo un
metodo de una clase pasándole entre otros el archivo (documento a grabar)
La tabla tiene un campo de tipo IMAGE que es donde se graba, por medio de un
procedimiento almacenado normalito INSERT...INTO.
La parte de la clase tiene el siguiente codigo para la lectura del archivo
en un buffer y grabarlo en la tabla.

' Get document from the stream
iDocLength = hifTNorma.PostedFile.ContentLength

Dim bDocTemp(iDocLength - 1) As Byte
Dim objStream As Stream
objStream = hifTNorma.PostedFile.InputStream
objStream.Read(bDocTemp, 0, iDocLength)
objStream.Close()

Se crea los objetos SqlConnection, SqlCommand y
Dim pTextoNorma As SqlParameter
pTextoNorma = objCmd.Parameters.Add("@TEXTO_NORMA",
SqlDbType.Image)
pTextoNorma.Direction = ParameterDirection.Input
pTextoNorma.Value = bDocTemp

objCmd.ExecuteScalar()

Hasta aqui se graba el documento a la tabla, aparentemente OK.
Luego en el momento de leerlo, utilizo otro procedimiento almacenado, y un
metodo de una clase. Este es:

Public Sub NormaArchivo()

' Rutina que genera el archivo a disco, de la norma guardada en la
base de datos.
' Hace lectura por bloques de bytes y va generando el archivo.
' Lo copia en una carpeta del sitio web de la aplicación para ser
abierto desde de la página.

Dim objConn As SqlConnection
objConn = New
SqlConnection(ConfigurationSettings.AppSettings("Conexion"))

Dim objCmd As New SqlCommand("ConsultarTextoNorma", objConn)
objCmd.CommandType = CommandType.StoredProcedure

Dim pConsecutivoNorma As SqlParameter
pConsecutivoNorma = objCmd.Parameters.Add("@CONSECUTIVO_NORMA",
SqlDbType.BigInt)
pConsecutivoNorma.Direction = ParameterDirection.Input
pConsecutivoNorma.Value = intTConsecutivoNorma

Dim strLRutaFisicaTmp As String =
ConfigurationSettings.AppSettings("RutaFisicaTmp")
Dim strLRutaWebTmp As String =
ConfigurationSettings.AppSettings("RutaWebTmp")

' Generar el archivo en un directorio temporal.
Dim fs As FileStream
Dim bw As BinaryWriter
Dim bufferSize As Integer = 100
Dim outbyte(bufferSize - 1) As Byte
Dim retval As Long
Dim startIndex As Long = 0

objConn.Open()
Dim sdrReader As SqlDataReader
sdrReader = objCmd.ExecuteReader(CommandBehavior.SequentialAccess)

While sdrReader.Read()
strTArchivoAdjunto = sdrReader.GetString(1)

' Erase temporal files
System.IO.File.Delete(strLRutaFisicaTmp + strTArchivoAdjunto)
System.IO.File.Delete(strLRutaWebTmp + strTArchivoAdjunto)

' Create a file to hold the output.
fs = New FileStream(strLRutaFisicaTmp + strTArchivoAdjunto,
FileMode.OpenOrCreate, FileAccess.Write)
bw = New BinaryWriter(fs)

' Reset the starting byte for the new BLOB.
startIndex = 0

' Read the bytes into outbyte[] and retain the number of bytes
returned.
retval = sdrReader.GetBytes(3, startIndex, outbyte, 0,
bufferSize)

' Continue reading and writing while there are bytes beyond the
size of the buffer.
While (retval = bufferSize)
bw.Write(outbyte)
bw.Flush()

'Reposition the start index to the end of the last buffer
and fill the buffer.
startIndex = startIndex + bufferSize
retval = sdrReader.GetBytes(3, startIndex, outbyte, 0,
bufferSize)
End While

' Write the remaining buffer.
bw.Write(outbyte, 0, retval - 1)
bw.Flush()

' Close the output file.
bw.Close()
fs.Close()

End While

' Close the reader and the connection.
sdrReader.Close()
objConn.Close()

' Copy the file from temporal path to web path.
System.IO.File.Copy(strLRutaFisicaTmp & strTArchivoAdjunto,
strLRutaWebTmp & strTArchivoAdjunto)
End Sub

Y luego desde la pagina redirecciono al documento generado así:
Response.Redirect(strLSitioWeb & strLArchivoAdjunto)

Y ahi es cuando sale el error para archivos mayores de 200KB (aprox)

Que opinan?
Gracias mil


"Gustavo Larriera [MVP]" escribió en el mensaje
news:%
Danos más detalles de cómo haces cuando grabas los documentos. Por allí
debe estar el problema.

Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"AlejoR" wrote in message
news:e$
Y Dice:
SQL Server 2000 Developer Edition 8.00.760 (SP3)




"Maxi" escribió en el mensaje
news:%
Hola, yo no he tenido esos problemas. Que version de sql y service pack
usas?


Salu2
Maxi [MVP SQL SERVER]


"AlejoR" escribió en el mensaje
news:
Que tal grupo.
Lei unos post mas abajo, ventajas y desventajas de guardar imagenes
digitalizadas en la base de datos, en un campo image.
Tengo el mismo dilema, solo que con documentos. Estoy guardando
documentos en un campo image, y luego recuperarlos, generando el
archivo y mostrandolo en la aplicacion contenedora.
Ahora, quiero preguntarles si tienen problema con el tamaño de las
imagenes que estan almacenando. Porque con los documentos, al generar
de nuevo el archivo a disco, cuando son de mas de 200k el archivo se
daña y no se puede abrir.

Como hace para que pueda leer y generar los archivos de casi cualquier
tamaño,
Gracias por sus apreciaciones!













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