Compartir a través de


SqlDataRecord, objeto

El objeto SqlDataRecord representa una fila única de datos, junto con sus metadatos relacionados.

Los procedimientos almacenados administrados se pueden enviar a los conjuntos de resultados del cliente que no son de SqlDataReader. La clase SqlDataRecord, junto con los métodos SendResultsStart, SendResultsRow y SendResultsEnd del objeto SqlPipe, permite a los procedimientos almacenados enviar conjuntos de resultados personalizados al cliente.

Para obtener más información, vea la documentación de referencia de la clase Microsoft.SqlServer.Server.SqlDataRecord en la documentación del SDK de .NET Framework.

Ejemplo

En el ejemplo siguiente se crea un nuevo registro de empleado y se devuelve al autor de la llamada.

C#

[Microsoft.SqlServer.Server.SqlProcedure]
public static void CreateNewRecordProc()
{
    // Variables.       
    SqlDataRecord record;

    // Create a new record with the column metadata.  The constructor 
    // is able to accept a variable number of parameters.
    record = new SqlDataRecord(new SqlMetaData("EmployeeID", SqlDbType.Int),
                               new SqlMetaData("Surname", SqlDbType.NVarChar, 20),
                               new SqlMetaData("GivenName", SqlDbType.NVarChar, 20),
                               new SqlMetaData("StartDate", SqlDbType.DateTime) );

    // Set the record fields.
    record.SetInt32(0, 0042);
    record.SetString(1, "Funk");
    record.SetString(2, "Don");
    record.SetDateTime(3, new DateTime(2005, 7, 17));

    // Send the record to the calling program.
    SqlContext.Pipe.Send(record);

}

Visual Basic

<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub  CreateNewRecordVBProc ()
    ' Variables.
    Dim record As SqlDataRecord

    ' Create a new record with the column metadata. The constructor is 
    ' able to accept a variable number of parameters

    record = New SqlDataRecord(New SqlMetaData("EmployeeID", SqlDbType.Int), _
                           New SqlMetaData("Surname", SqlDbType.NVarChar, 20), _
                           New SqlMetaData("GivenName", SqlDbType.NVarChar, 20), _
                           New SqlMetaData("StartDate", SqlDbType.DateTime))

    ' Set the record fields.
    record.SetInt32(0, 42)
    record.SetString(1, "Funk")
    record.SetString(2, "Don")
    record.SetDateTime(3, New DateTime(2005, 7, 17))

    ' Send the record to the calling program.
    SqlContext.Pipe.Send(record)

End Sub

Historial de cambios

Contenido actualizado

Se ha actualizado el vínculo al ejemplo.