CreateAndRegisterStream Delegate


Updated: February 25, 2016

Applies To: SQL Server 2016

Creates and registers a stream and is called by a report server to retrieve the stream to which to render a report.

Namespace:   Microsoft.ReportingServices.Interfaces
Assemblies:   Microsoft.ReportingServices.Interfaces (in Microsoft.ReportingServices.Interfaces.dll)
  Microsoft.ReportingServices.SharePoint.UI.WebParts (in Microsoft.ReportingServices.SharePoint.UI.WebParts.dll)

No code example is currently available or this language may not be supported.


Type: System.String

The name of the stream. The first stream asked for must be the main body of the report, for example, the HTML for an HTML rendering, or the first page for a page-based rendering. The names must be unique within a report and must use only the characters 0-9, a-z (lower case only) and underscore (_). The underscore may not be used as the first character of the name.

Type: System.String

The file extension of the stream.

Type: System.Text.Encoding

The character encoding of the stream. This can be null if the stream does not contain characters.

Type: System.String

The MIME type of the stream.

Type: System.Boolean

Whether the stream needs to be seek-enabled. If false, the stream is forward only and is sent to the client in chunks, as created. If true, the stream is spooled to disk and not sent until it is closed. The default value is false.

Type: Microsoft.ReportingServices.Interfaces.StreamOper

Indicates the operation (a StreamOper value) that the method performs.

Return Value

Type: System.IO.Stream

The main body of the report must be the first stream created. To refer to this stream in another stream, use the StreamURL of the Report object, concatenated with the name, a period, and the extension. For example, if the StreamURL is "myfiles" and this is stream "myImage" and it is a JPEG file, the stream can be referenced as "myFiles/myImage.jpg".

There can be multiple streams to render. The first time CreateAndRenderStream is called, the primary stream containing the report is returned. Any subsequent calls to CreateAndRenderStream return additional streams that have been stored in the cache. You use secondary streams when your rendering output is a composition of data chunks. For example, when the HTML rendering extensions renders a report containing pictures, the rendering extension renders the HTML page as a primary stream, and each picture is a secondary stream (one stream per picture). Inside of the HTML page, the rendering extension puts links to these secondary streams that contain the pictures. When the browser opens the HTML page, it attempts to get the pictures by following the links to the pictures. To create a link from the primary stream to the secondary stream, use the StreamURL method on the Report class as indicated previously.

Return to top