Bagikan melalui


SqlPipe.SendResultsRow(SqlDataRecord) Metode

Definisi

Mengirim satu baris data kembali ke klien.

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)

Parameter

record
SqlDataRecord

Objek SqlDataRecord dengan nilai kolom untuk baris yang akan dikirim ke klien. Skema untuk rekaman harus cocok dengan skema yang dijelaskan oleh metadata yang SqlDataRecord diteruskan ke SendResultsStart(SqlDataRecord) metode .

Pengecualian

record adalah null.

Metode SendResultsStart(SqlDataRecord) ini sebelumnya tidak dipanggil.

Contoh

Contoh berikut membuat baru SqlDataRecord dan SqlMetaData. Contoh kemudian menandai awal tataan hasil menggunakan SendResultsStart metode , mengirim rekaman dengan contoh data kembali ke klien menggunakan SendResultsRow metode , dan menandai akhir tataan hasil dengan SendResultsEnd metode .

[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

Keterangan

Prosedur tersimpan terkelola dapat mengirim tataan hasil ke klien yang tidak menerapkan SqlDataReader. Metode ini, bersama dengan SendResultsStart dan SendResultsEnd, memungkinkan prosedur tersimpan untuk mengirim tataan hasil kustom ke klien.

Metode ini SendResultsRow mengirim satu baris data kembali ke klien. Baris selanjutnya dapat dikembalikan ke pemanggil dengan memanggil SendResultsRow, satu kali untuk setiap baris yang dikirim. Setelah semua baris dikirim, panggilan ke SendResultsEnd metode diperlukan untuk menandai akhir kumpulan hasil.

Berlaku untuk

Lihat juga