Partager via


SqlPipe.SendResultsRow(SqlDataRecord) Méthode

Définition

Renvoie une ligne unique de données au client.

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)

Paramètres

record
SqlDataRecord

Objet SqlDataRecord avec les valeurs de colonne pour la ligne à envoyer au client. Le schéma de l'enregistrement doit correspondre au schéma décrit par les métadonnées de SqlDataRecord passées à la méthode SendResultsStart(SqlDataRecord).

Exceptions

record a la valeur null.

La méthode SendResultsStart(SqlDataRecord) n'a pas été appelée au préalable.

Exemples

L’exemple suivant crée un et SqlDataRecord son SqlMetaData. L’exemple marque ensuite le début d’un jeu de résultats à l’aide de la SendResultsStart méthode , renvoie les enregistrements avec des exemples de données au client à l’aide de la SendResultsRow méthode et marque la fin du jeu de résultats avec la SendResultsEnd méthode .

[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

Remarques

Les procédures stockées managées peuvent envoyer des jeux de résultats aux clients qui n’implémentent pas de SqlDataReader. Cette méthode, ainsi SendResultsStart que et SendResultsEnd, permet aux procédures stockées d’envoyer des jeux de résultats personnalisés au client.

La SendResultsRow méthode renvoie une seule ligne de données au client. Les lignes peuvent ensuite être retournées à l’appelant en appelant SendResultsRow, une fois pour chaque ligne envoyée. Une fois toutes les lignes envoyées, un appel à la SendResultsEnd méthode est nécessaire pour marquer la fin du jeu de résultats.

S’applique à

Voir aussi