次の方法で共有


SqlPipe クラス

定義

このクラスを使用すると、SQL Server データベース上でインプロセスで実行されるマネージド ストアド プロシージャから、呼び出し元に結果を返すことができます。 このクラスは継承できません。

public ref class SqlPipe sealed
public sealed class SqlPipe
type SqlPipe = class
Public NotInheritable Class SqlPipe
継承
SqlPipe

次の例では、 と 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

注釈

このクラスのインスタンスは、 クラスの プロパティを使用して、マネージド ストアド プロシージャでPipeSqlContext使用できます。

プロパティ

IsSendingResults

SqlPipe に、単一の結果セットをクライアントに返すモードが使用されているかどうかを示す値を取得します。 このプロパティは読み取り専用です。

メソッド

ExecuteAndSend(SqlCommand)

パラメーターとして渡されたコマンドを実行し、結果をクライアントに返します。

Send(SqlDataReader)

複数行の結果セットを直接クライアントまたは現在の出力のコンシューマーに送信します。

Send(SqlDataRecord)

単一行の結果セットを直接クライアントまたは現在の出力のコンシューマーに送信します。

Send(String)

文字列メッセージを直接クライアントまたは現在の出力のコンシューマーに送信します。

SendResultsEnd()

結果セットの最後に到達したことを示し、SqlPipe インスタンスを初期状態に戻します。

SendResultsRow(SqlDataRecord)

単一行のデータをクライアントに返します。

SendResultsStart(SqlDataRecord)

クライアントに返す結果セットの先頭を宣言し、record パラメーターを使用して結果セットを表すメタデータを構築します。

適用対象