SqlPipe.SendResultsRow(SqlDataRecord) 方法

定义

将单行数据发送回客户端。

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) 的元数据所描述的架构相匹配。

例外

recordnull

示例

以下示例创建一个新的 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 将单行数据发送回客户端。 随后,可以通过调用 SendResultsRow将行返回到调用方,针对发送的每一行一次。 发送所有行后,需要调用 SendResultsEnd 方法以标记结果集的末尾。

适用于

另请参阅