SqlPipe.SendResultsRow(SqlDataRecord) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
単一行のデータをクライアントに返します。
public:
void SendResultsRow(Microsoft::SqlServer::Server::SqlDataRecord ^ record);
public void SendResultsRow (Microsoft.SqlServer.Server.SqlDataRecord record);
member this.SendResultsRow : Microsoft.SqlServer.Server.SqlDataRecord -> unit
Public Sub SendResultsRow (record As SqlDataRecord)
パラメーター
- record
- SqlDataRecord
クライアントに送信する行の列値を含む SqlDataRecord オブジェクト。 このレコードのスキーマは、SqlDataRecord メソッドに渡した SendResultsStart(SqlDataRecord) のメタデータが定義するスキーマと一致している必要があります。
例外
record
が null
です。
SendResultsStart(SqlDataRecord) メソッドがまだ呼び出されていません。
例
次の例では、新 SqlDataRecord しい とその を作成します SqlMetaData。 次に、 メソッドを使用して結果セットの先頭をマークし、 メソッドを使用してSendResultsStartSendResultsRowサンプル データを含むレコードをクライアントに送り返し、結果セットの末尾を メソッドでSendResultsEndマークします。
[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcReturnResultSet()
{
// Create the record and specify the metadata for the columns.
SqlDataRecord record = new SqlDataRecord(
new SqlMetaData("col1", SqlDbType.NVarChar, 100),
new SqlMetaData("col2", SqlDbType.Int));
// Mark the begining of the result-set.
SqlContext.Pipe.SendResultsStart(record);
// Send 10 rows back to the client.
for (int i = 0; i < 10; i++)
{
// Set values for each column in the row.
record.SetString(0, "row " + i.ToString());
record.SetInt32(1, i);
// Send the row back to the client.
SqlContext.Pipe.SendResultsRow(record);
}
// Mark the end of the result-set.
SqlContext.Pipe.SendResultsEnd();
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcReturnResultSet()
' Create the record and specify the metadata for the columns.
Dim record As New SqlDataRecord( _
New SqlMetaData("col1", SqlDbType.NVarChar, 100), _
New SqlMetaData("col2", SqlDbType.Int))
' Mark the begining of the result-set.
SqlContext.Pipe.SendResultsStart(record)
' Send 10 rows back to the client.
Dim i As Integer
For i = 0 To 9
' Set values for each column in the row.
record.SetString(0, "row " & i.ToString())
record.SetInt32(1, i)
' Send the row back to the client.
SqlContext.Pipe.SendResultsRow(record)
Next
' Mark the end of the result-set.
SqlContext.Pipe.SendResultsEnd()
End Sub
注釈
マネージド ストアド プロシージャは、 を実装していないクライアントに結果セットを SqlDataReader送信できます。 このメソッドと と を使用SendResultsStartSendResultsEndすると、ストアド プロシージャはカスタム結果セットをクライアントに送信できます。
メソッドは SendResultsRow 、1 行のデータをクライアントに送り返します。 その後、送信される各行に対して を 1 回呼び出すことで、行を呼び出 SendResultsRowし元に返すことができます。 すべての行が送信された後、結果セットの末尾を SendResultsEnd マークするには、 メソッドの呼び出しが必要です。