Mantén la atención porque en esta crónica hallarás la contestación que buscas.
Solución:
Consulte Descargar y cargar imágenes desde SQL Server para ver un artículo que cubre el tema, incluida la semántica de transmisión eficiente. Debes usar un SqlDataReader
abierto con CommandBehavior.SequentialAccess
:
Acceso secuencial Proporciona una forma para que DataReader maneje filas que contienen columnas con valores binarios grandes. En lugar de cargar toda la fila, SequentialAccess permite que DataReader cargue datos como una secuencia. A continuación, puede utilizar el método GetBytes o GetChars para especificar una ubicación de byte para iniciar la operación de lectura y un tamaño de búfer limitado para los datos que se devuelven.
El artículo vinculado proporciona el código completo para crear un Stream respaldado por un SqlDataReader, simplemente puede Stream.CopyTo
(HttpResponse.OutputStream)
, o usar un byte[] copia fragmentada si aún no tiene .Net 4.0.
Este artículo de seguimiento explica cómo usar una columna FILESTREAM para la transmisión eficiente de datos VARBINARY grandes dentro y fuera de la base de datos.
Te invitamos a añadir valor a nuestro contenido asistiendo con tu experiencia en las referencias.