다음을 통해 공유


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인 경우

이 메서드는 out-of-process 연결에 바인딩된 명령에 대해 지원되지 않습니다.

예제

다음 예제에서는 SqlConnectionSqlCommand 저장된 프로시저에서 데이터 원본에서 행을 선택 합니다. 이 예제에서는 다음 사용을 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 throw 됩니다. 이 메서드는 out-of-process 연결에 바인딩된 명령에 대해 지원되지 않습니다.

에 오류가 있는 경우는 SqlCommand 개체 전송 된 예외를 파이프로 전송 됩니다 있지만 복사본 호출 관리 코드에도 보내집니다. 호출 코드에서 예외를 catch 하지 않습니다 하는 경우 TRANSACT-SQL 코드를 스택으로 전파 하 고 출력에 두 번 표시 합니다. 호출 코드에서 예외를 catch 하는 경우 파이프 소비자는 오류를 표시 되지만 중복 오류를 수 없습니다.

적용 대상