Export (0) Print
Expand All

SqlPipe.ExecuteAndSend Method

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.

ExceptionCondition
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

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft