SqlDataRecord 개체
적용 대상: SQL Server
SqlDataRecord 개체는 관련 메타데이터와 함께 단일 데이터 행을 나타냅니다.
관리되는 저장 프로시저는 SqlDataReader가 아닌 클라이언트 결과 집합으로 보낼 수 있습니다. SqlPipe 개체의 SendResultsStart, SendResultsRow 및 SendResultsEnd 메서드와 함께 SqlDataRecord 클래스를 사용하면 저장 프로시저가 사용자 지정 결과 집합을 클라이언트로 보낼 수 있습니다.
자세한 내용은 .NET Framework SDK 설명서의 Microsoft.SqlServer.Server.SqlDataRecord 클래스 참조 설명서를 참조하세요.
예시
다음 예제에서는 새 직원 레코드를 만들어 호출자에게 반환합니다.
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