SqlPipe.SendResultsRow(SqlDataRecord) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
.
Metoda SendResultsStart(SqlDataRecord) nebyla dříve volána.
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.