Oggetto SqlDataRecord
Si applica a: SQL Server
L'oggetto SqlDataRecord rappresenta una singola riga di dati, insieme ai relativi metadati correlati.
Le stored procedure gestite possono inviare ai set di risultati del client che non provengono da sqlDataReader. La classe SqlDataRecord , insieme ai metodi SendResultsStart, SendResultsRow e SendResultsEnd dell'oggetto SqlPipe , consente alle stored procedure di inviare set di risultati personalizzati al client.
Per altre informazioni, vedere la documentazione di riferimento sulla classe Microsoft.SqlServer.Server.SqlDataRecord nella documentazione di .NET Framework SDK.
Esempio
Nell'esempio seguente viene creato un nuovo record relativo a un dipendente, che viene successivamente restituito al chiamante.
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