Share via


SqlPipe.SendResultsRow(SqlDataRecord) Método

Definição

Envia uma única linha de dados de volta ao cliente.

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

Um objeto SqlDataRecord com os valores de coluna para a linha a ser enviada ao cliente. O esquema para o registro deve corresponder ao esquema descrito pelos metadados do SqlDataRecord passado para o método SendResultsStart(SqlDataRecord).

Exceções

O record é null.

O método SendResultsStart(SqlDataRecord) não foi chamado anteriormente.

Exemplos

O exemplo a seguir cria um novo SqlDataRecord e seu SqlMetaData. O exemplo marca o início de um conjunto de resultados usando o SendResultsStart método , envia registros com dados de exemplo de volta para o cliente usando o SendResultsRow método e marca o final do conjunto de resultados com o 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

Comentários

Os procedimentos armazenados gerenciados podem enviar conjuntos de resultados para clientes que não estão implementando um SqlDataReader. Esse método, juntamente com SendResultsStart e SendResultsEnd, permite que os procedimentos armazenados enviem conjuntos de resultados personalizados para o cliente.

O SendResultsRow método envia uma única linha de dados de volta ao cliente. As linhas podem ser retornadas posteriormente ao chamador chamando SendResultsRow, uma vez para cada linha que está sendo enviada. Depois que todas as linhas forem enviadas, uma chamada para o SendResultsEnd método será necessária para marcar o final do conjunto de resultados.

Aplica-se a

Confira também