SqlPipe.ExecuteAndSend(SqlCommand) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
执行作为参数传递的命令,并将结果发送到客户端。
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 代码,并在输出中出现两次。 如果调用代码确实捕获了异常,管道使用者仍将看到错误,但不会有重复错误。