다음을 통해 공유


SqlDataRecord 개체

SqlDataRecord 개체는 관련 메타데이터와 함께 하나의 데이터 행을 나타냅니다.

관리되는 저장 프로시저는 SqlDataReader에서 제공되지 않은 결과 집합을 클라이언트로 보낼 수 있습니다. SqlDataRecord 클래스와 함께 SqlPipe 개체의 SendResultsStart, SendResultsRow 및 SendResultsEnd 메서드를 사용하면 저장 프로시저에서 사용자 지정 결과 집합을 클라이언트로 보낼 수 있습니다.

자세한 내용은 .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