Sdílet prostřednictvím


SqlPipe.SendResultsRow(SqlDataRecord) Metoda

Definice

Odešle jeden řádek dat zpět klientovi.

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)

Parametry

record
SqlDataRecord

Objekt SqlDataRecord s hodnotami sloupců pro řádek, který má být odeslán klientovi. Schéma záznamu musí odpovídat schématu popsanému metadaty předaného SqlDataRecordSendResultsStart(SqlDataRecord) metodě.

Výjimky

Hodnota record je null.

Příklady

Následující příklad vytvoří nový SqlDataRecord a jeho SqlMetaData. Příklad pak označí začátek sady výsledků pomocí SendResultsStart metody , odešle záznamy s ukázkovými daty zpět klientovi pomocí SendResultsRow metody a označí konec sady výsledků dotazu metodou 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

Poznámky

Spravované uložené procedury mohou odesílat sady výsledků do klientů, kteří neimimují SqlDataReader. Tato metoda spolu s a SendResultsEndumožňuje uloženým SendResultsStart procedurám odesílat do klienta vlastní sady výsledků.

Metoda SendResultsRow odešle jeden řádek dat zpět klientovi. Řádky mohou být následně vráceny volajícímu voláním SendResultsRow, jednou pro každý odeslaný řádek. Po odeslání všech řádků se vyžaduje volání SendResultsEnd metody k označení konce sady výsledků dotazu.

Platí pro

Viz také