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 選択します。 次に、この例では a 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 コードに伝達され、出力に 2 回表示されます。 呼び出し元のコードで例外がキャッチされた場合でも、パイプ コンシューマーにはエラーが表示されますが、重複するエラーは発生しません。