SqlPipe.ExecuteAndSend(SqlCommand) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет команду, переданную в качестве параметра, и отправляет результаты клиенту.
public:
void ExecuteAndSend(System::Data::SqlClient::SqlCommand ^ command);
public void ExecuteAndSend (System.Data.SqlClient.SqlCommand command);
member this.ExecuteAndSend : System.Data.SqlClient.SqlCommand -> unit
Public Sub ExecuteAndSend (command As SqlCommand)
Параметры
- command
- SqlCommand
Объект SqlCommand, который требуется выполнить.
Исключения
Значение параметра command
— null
.
Данный метод не поддерживается для команд, привязанных к подключениям вне процессов.
Примеры
В следующем примере используются SqlConnection и SqlCommand выбираются строки из источника данных в хранимой процедуре. Затем в примере используется команда SqlPipe для выполнения команды и отправки результатов клиенту.
[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
Комментарии
Помимо фактических результатов, другие сообщения и ошибки также отправляются непосредственно клиенту.
Выходные параметры и возвращаемые значения не отправляются клиенту; они доступны вызывающей объекту через коллекцию параметров объекта команды.
Если команда не привязана к внутрипроцессной связи, InvalidOperationException возникает исключение. Данный метод не поддерживается для команд, привязанных к подключениям вне процессов.
Если в отправленном SqlCommand объекте возникают ошибки, исключения отправляются в канал, но копия также отправляется в вызов управляемого кода. Если вызывающий код не перехватывает исключение, он будет распространять стек на код Transact-SQL и отображаться в выходных данных дважды. Если вызывающий код перехватывает исключение, потребитель канала по-прежнему увидит ошибку, но не будет повторяться.