Condividi tramite


SqlPipe.SendResultsRow(SqlDataRecord) Metodo

Definizione

Invia direttamente al client una riga singola di dati.

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)

Parametri

record
SqlDataRecord

Oggetto SqlDataRecord con i valori di colonna relativi alla riga da inviare al client. Lo schema del record dovrà corrispondere allo schema descritto dai metadati della classe SqlDataRecord passata al metodo SendResultsStart(SqlDataRecord).

Eccezioni

L'elemento record è null.

Il metodo SendResultsStart(SqlDataRecord) non è stato chiamato precedentemente.

Esempio

Nell'esempio seguente viene creato un nuovo SqlDataRecord e il relativo SqlMetaDataoggetto . L'esempio contrassegna quindi l'inizio di un set di risultati usando il SendResultsStart metodo, invia i record con i dati di esempio al client usando il SendResultsRow metodo e contrassegna la fine del set di risultati con il SendResultsEnd metodo .

[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

Commenti

Le stored procedure gestite possono inviare set di risultati ai client che non implementano un SqlDataReaderoggetto . Questo metodo, insieme a SendResultsStart e SendResultsEnd, consente alle stored procedure di inviare set di risultati personalizzati al client.

Il SendResultsRow metodo invia una singola riga di dati al client. Le righe possono successivamente essere restituite al chiamante chiamando SendResultsRow, una volta per ogni riga inviata. Dopo l'invio di tutte le righe, è necessaria una chiamata al SendResultsEnd metodo per contrassegnare la fine del set di risultati.

Si applica a

Vedi anche