다음을 통해 공유


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  

참고 항목

SqlPipe 개체