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 オブジェクト。

例外

commandnull です。

アウトプロセス接続にバインドされたコマンドに対してこのメソッドを使用することはできません。

次の例では、 と SqlCommand を使用SqlConnectionして、ストアド プロシージャのデータ ソースから行を選択します。 次に、 を使用 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

注釈

実際の結果に加えて、他のメッセージやエラーもクライアントに直接送信されます。

出力パラメーターと戻り値はクライアントに送信されません。これらは、コマンド オブジェクトの parameters コレクションを介して呼び出し元が使用できます。

コマンドがインプロセス接続にバインドされていない場合は、 InvalidOperationException がスローされます。 アウトプロセス接続にバインドされたコマンドに対してこのメソッドを使用することはできません。

送信されたオブジェクトに SqlCommand エラーがある場合、例外はパイプに送信されますが、コピーは呼び出し元のマネージド コードにも送信されます。 呼び出し元のコードが例外をキャッチしない場合、スタックが Transact-SQL コードに伝達され、出力に 2 回表示されます。 呼び出し元のコードで例外がキャッチされた場合でも、パイプ コンシューマーにはエラーが表示されますが、重複するエラーは発生しません。

適用対象