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
備註
除了任何實際的結果之外,其他訊息和錯誤也會直接傳送給用戶端。
輸出參數和傳回值不會傳送至用戶端;這些可供呼叫端透過命令物件的 parameters 集合使用。
如果命令未系結至進程內連線, InvalidOperationException 則會擲回 。 繫結至跨處理序 (Out-Of-Process) 連接的命令不支援這個方法。
如果提交的物件中有 SqlCommand 錯誤,例外狀況會傳送至管道,但也會將複本傳送至呼叫 Managed 程式碼。 如果呼叫程式碼未攔截例外狀況,它會將堆疊傳播至 Transact-SQL程式碼,並在輸出中出現兩次。 如果呼叫程式碼確實攔截例外狀況,管道取用者仍會看到錯誤,但不會發生重複的錯誤。