Share via


SqlPipe Class

Definition

Allows managed stored procedures running in-process on a SQL Server database to return results back to the caller. This class cannot be inherited.

public ref class SqlPipe sealed
public sealed class SqlPipe
type SqlPipe = class
Public NotInheritable Class SqlPipe
Inheritance
SqlPipe

Examples

The following example uses SqlConnection and SqlCommand to select rows from a data source in a stored procedure. The example then uses a SqlPipe to execute the command and send the results back to the client.

[Microsoft.SqlServer.Server.SqlProcedure()]
public static void StoredProcExecuteCommand(int rating)
{
    // Connect through the context connection.
    using (SqlConnection connection = new SqlConnection("context connection=true"))
    {
        connection.Open();

        SqlCommand command = new SqlCommand(
            "SELECT VendorID, AccountNumber, Name FROM Purchasing.Vendor " +
            "WHERE CreditRating <= @rating", connection);
        command.Parameters.AddWithValue("@rating", rating);

        // Execute the command and send the results directly to the client.
        SqlContext.Pipe.ExecuteAndSend(command);
    }
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcExecuteCommand(ByVal rating As Integer)
    Dim command As SqlCommand

    ' Connect through the context connection
    Using connection As New SqlConnection("context connection=true")
        connection.Open()

        command = New SqlCommand( _
            "SELECT VendorID, AccountNumber, Name FROM Purchasing.Vendor " & _
            "WHERE CreditRating <= @rating", connection)
        command.Parameters.AddWithValue("@rating", rating)

        ' Execute the command and send the results directly to the client
        SqlContext.Pipe.ExecuteAndSend(command)
    End Using
End Sub

Remarks

An instance of this class is made available to managed stored procedures through the Pipe property of the SqlContext class.

Properties

IsSendingResults

Gets a value that indicates whether the SqlPipe is in the mode of sending single result sets back to the client. This property is read-only.

Methods

ExecuteAndSend(SqlCommand)

Executes the command passed as a parameter and sends the results to the client.

Send(SqlDataReader)

Sends a multirow result set directly to the client or current output consumer.

Send(SqlDataRecord)

Sends a single-row result set directly to the client or current output consumer.

Send(String)

Sends a string message directly to the client or current output consumer.

SendResultsEnd()

Marks the end of a result set, and returns the SqlPipe instance back to the initial state.

SendResultsRow(SqlDataRecord)

Sends a single row of data back to the client.

SendResultsStart(SqlDataRecord)

Marks the beginning of a result set to be sent back to the client, and uses the record parameter to construct the metadata that describes the result set.

Applies to