title | description | author | ms.author | ms.date | ms.service | ms.subservice | ms.topic | helpviewer_keywords | ||
---|---|---|---|---|---|---|---|---|---|---|
SqlDataRecord Object |
In SQL Server CLR integration, stored procedures can use the SqlDataRecord class to send custom result sets to the client. |
rwestMSFT |
randolphwest |
12/27/2024 |
sql |
clr |
reference |
|
[!INCLUDE SQL Server]
In the .NET common language runtime (CLR), the SqlDataRecord
object represents a single row of data, along with its related metadata.
Managed stored procedures might send to the client result sets that aren't from a SqlDataReader
. The SqlDataRecord
class, along with SendResultsStart
, SendResultsRow
, and SendResultsEnd
methods of the SqlPipe
object, allows stored procedures to send custom result sets to the client.
For more information, see Microsoft.SqlServer.Server.SqlDataRecord.
The following example creates a new employee record and returns it to the caller.
[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);
}
<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