SqlPipe.SendResultsRow(SqlDataRecord) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Sendet eine einzelne Datenzeile an den Client zurück.
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
Ein SqlDataRecord-Objekt mit den Spaltenwerten für die Zeile, die an den Client gesendet werden sollen. Das Schema für den Datensatz muss mit dem Schema in den Metadaten des an die SqlDataRecord-Methode übergebenen SendResultsStart(SqlDataRecord) übereinstimmen.
Ausnahmen
record
ist null
.
Die SendResultsStart(SqlDataRecord)-Methode wurde zuvor nicht aufgerufen.
Beispiele
Im folgenden Beispiel werden ein neues SqlDataRecord und dessen SqlMetaDataerstellt. Das Beispiel markiert dann den Anfang eines Resultsets mithilfe der SendResultsStart -Methode, sendet Datensätze mit Beispieldaten mithilfe der SendResultsRow -Methode zurück an den Client und markiert das Ende des Resultsets mit der SendResultsEnd -Methode.
[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
Hinweise
Verwaltete gespeicherte Prozeduren können Resultsets an Clients senden, die keine implementieren SqlDataReader. Mit dieser Methode und SendResultsStartSendResultsEndkönnen gespeicherte Prozeduren benutzerdefinierte Resultsets an den Client senden.
Die SendResultsRow -Methode sendet eine einzelne Datenzeile zurück an den Client. Zeilen können anschließend an den Aufrufer zurückgegeben werden, indem für jede gesendete Zeile einmal aufgerufen SendResultsRowwird. Nachdem alle Zeilen gesendet wurden, ist ein Aufruf der SendResultsEnd -Methode erforderlich, um das Ende des Resultsets zu markieren.