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
인 경우
이 메서드는 out-of-process 연결에 바인딩된 명령에 대해 지원되지 않습니다.
예제
다음 예제에서는 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 throw 됩니다. 이 메서드는 out-of-process 연결에 바인딩된 명령에 대해 지원되지 않습니다.
에 오류가 있는 경우는 SqlCommand 개체 전송 된 예외를 파이프로 전송 됩니다 있지만 복사본 호출 관리 코드에도 보내집니다. 호출 코드에서 예외를 catch 하지 않습니다 하는 경우 TRANSACT-SQL 코드를 스택으로 전파 하 고 출력에 두 번 표시 합니다. 호출 코드에서 예외를 catch 하는 경우 파이프 소비자는 오류를 표시 되지만 중복 오류를 수 없습니다.