ExecuteAndSend Method
Collapse the table of content
Expand the table of content

SqlPipe.ExecuteAndSend Method (SqlCommand)

 

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

Namespace:   Microsoft.SqlServer.Server
Assembly:  System.Data (in System.Data.dll)

public void ExecuteAndSend(
	SqlCommand command
)

Parameters

command
Type: System.Data.SqlClient.SqlCommand

The SqlCommand object to be executed.

Exception Condition
ArgumentNullException

The command is null.

InvalidOperationException

This method is not supported on commands bound to out-of-process connections.

In addition to any actual results, other messages and errors are also sent directly to the client.

Output parameters and return values are not sent to the client; these are available to the caller, through the parameters collection of the command object.

If the command is not bound to an in-process connection, an InvalidOperationException is thrown. This method is not supported on commands bound to out-of-process connections.

If there are errors in the SqlCommand object that was submitted, exceptions are sent to the pipe, but a copy is also sent to calling managed code. If the calling code doesn't catch the exception, it will propagate up the stack to the Transact-SQL code and appear in the output twice. If the calling code does catch the exception, the pipe consumer will still see the error, but there will not be a duplicate error.

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);

	}
}

.NET Framework
Available since 2.0
Return to top
Show:
© 2016 Microsoft