SqlPipe.SendResultsRow(SqlDataRecord) Método

Definición

Devuelve al cliente una fila de datos única.

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)

Parámetros

record
SqlDataRecord

Objeto SqlDataRecord con los valores de columna de la fila que se va a enviar al cliente. El esquema del registro debe coincidir con el esquema descrito por los metadatos del objeto SqlDataRecord pasados al método SendResultsStart(SqlDataRecord).

Excepciones

El valor de record es null.

No se ha llamado previamente al método SendResultsStart(SqlDataRecord).

Ejemplos

En el ejemplo siguiente se crea un nuevo SqlDataRecord objeto y su .SqlMetaData A continuación, el ejemplo marca el principio de un conjunto de resultados mediante el SendResultsStart método , envía registros con datos de ejemplo al cliente mediante el SendResultsRow método y marca el final del conjunto de resultados con el SendResultsEnd método .

[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

Comentarios

Los procedimientos almacenados administrados pueden enviar conjuntos de resultados a clientes que no implementan .SqlDataReader Este método, junto con SendResultsStart y SendResultsEnd, permite que los procedimientos almacenados envíen conjuntos de resultados personalizados al cliente.

El SendResultsRow método envía una sola fila de datos al cliente. Posteriormente, las filas se pueden devolver al autor de la llamada llamando SendResultsRowa , una vez para cada fila que se envía. Una vez enviadas todas las filas, se requiere una llamada al SendResultsEnd método para marcar el final del conjunto de resultados.

Se aplica a

Consulte también