.net IHTTPHandler Streaming SQL Binary Data
- by Yisman
Hello everybody
I am trying to implement an ihttphandeler for streaming files. files may be tiny thumbnails or gigantic movies
the binaries r stored in sql server
i looked at a lot of code online but something does not make sense
isnt streaming supposed to read the data piece by piece and move it over the line?
most of the code seems to first read the whole field from mssql to memory and then use streaming for the output writing
wouldnt it b more eficient to actually stream from disk directly to http byte by byte (or buffered chunks?)
heres my code so far but cant figure out the correct combination of the sqlreader mode and the stream object and the writing system
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
context.Response.BufferOutput = False
Dim FileField=safeparam(context.Request.QueryString("FileField"))
Dim FileTable=safeparam(context.Request.QueryString("FileTable"))
Dim KeyField=safeparam(context.Request.QueryString("KeyField"))
Dim FileKey=safeparam(context.Request.QueryString("FileKey"))
Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("Main").ConnectionString)
Using command As New SqlCommand("SELECT " & FileField & "Bytes," & FileField & "Type FROM " & FileTable & " WHERE " & KeyField & "=" & FileKey, connection)
command.CommandType = Data.CommandType.Text
enbd using
end using
end sub
please be aware that this sql command also returns the file extension (pdf,jpg,doc...) in the second field of the query
thank you all very much