다음을 통해 공유


SqlPipe.SendResultsRow(SqlDataRecord) 메서드

정의

데이터의 단일 행을 클라이언트로 다시 보냅니다.

public:
 void SendResultsRow(Microsoft::SqlServer::Server::SqlDataRecord ^ record);
public void SendResultsRow (Microsoft.SqlServer.Server.SqlDataRecord record);
member this.SendResultsRow : Microsoft.SqlServer.Server.SqlDataRecord -> unit
Public Sub SendResultsRow (record As SqlDataRecord)

매개 변수

record
SqlDataRecord

클라이언트로 보낼 행에 대한 열 값이 있는 SqlDataRecord 개체입니다. 이 레코드의 스키마는 SqlDataRecord 메서드에 전달된 SendResultsStart(SqlDataRecord)의 메타데이터가 설명하는 스키마와 일치해야 합니다.

예외

recordnull인 경우

SendResultsStart(SqlDataRecord) 메서드가 이전에 호출되지 않은 경우

예제

다음 예제에서는 새 SqlDataRecordSqlMetaData입니다. 예제는 다음 결과 사용 하 여 집합의 시작을 표시 합니다 SendResultsStart 메서드를 사용 하 여 클라이언트에 다시 예제 데이터를 사용 하 여 레코드를 보냅니다 합니다 SendResultsRow 메서드를 사용 하 여 결과의 끝 설정 표시를 SendResultsEnd 메서드.

[Microsoft.SqlServer.Server.SqlProcedure]
public static void StoredProcReturnResultSet()
{
    // Create the record and specify the metadata for the columns.
    SqlDataRecord record = new SqlDataRecord(
        new SqlMetaData("col1", SqlDbType.NVarChar, 100),
        new SqlMetaData("col2", SqlDbType.Int));

    // Mark the begining of the result-set.
    SqlContext.Pipe.SendResultsStart(record);

    // Send 10 rows back to the client.
    for (int i = 0; i < 10; i++)
    {
        // Set values for each column in the row.
        record.SetString(0, "row " + i.ToString());
        record.SetInt32(1, i);

        // Send the row back to the client.
        SqlContext.Pipe.SendResultsRow(record);
    }

    // Mark the end of the result-set.
    SqlContext.Pipe.SendResultsEnd();
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcReturnResultSet()

    ' Create the record and specify the metadata for the columns.
    Dim record As New SqlDataRecord( _
        New SqlMetaData("col1", SqlDbType.NVarChar, 100), _
        New SqlMetaData("col2", SqlDbType.Int))

    ' Mark the begining of the result-set.
    SqlContext.Pipe.SendResultsStart(record)

    ' Send 10 rows back to the client.
    Dim i As Integer
    For i = 0 To 9

        ' Set values for each column in the row.
        record.SetString(0, "row " & i.ToString())
        record.SetInt32(1, i)

        ' Send the row back to the client.
        SqlContext.Pipe.SendResultsRow(record)
    Next

    ' Mark the end of the result-set.
    SqlContext.Pipe.SendResultsEnd()
End Sub

설명

관리 되는 저장된 프로시저 구현 하지 않는 클라이언트에 결과 집합을 보낼 수 있습니다는 SqlDataReader합니다. 이 메서드를 함께 SendResultsStartSendResultsEnd, 저장된 프로시저에서 사용자 지정 결과 집합을 클라이언트로 보낼 수 있습니다.

SendResultsRow 메서드는 단일 데이터 행을 클라이언트로 다시 보냅니다. 행 수를 호출 하 여 이후에 호출자에 게 반환 하는 수 SendResultsRow, 보내는 각 행에 대해 한 번입니다. 모든 행을 보낸 후에 대 한 호출을 SendResultsEnd 메서드는 결과 집합의 끝을 표시 해야 합니다.

적용 대상

추가 정보