레코드 집합: 스크롤(ODBC)

이 항목은 MFC ODBC 클래스에 적용됩니다.

레코드 집합을 연 후에는 레코드에 액세스하여 값을 표시하고, 계산을 수행하고, 보고서를 생성하는 등의 작업을 수행해야 합니다. 스크롤하면 레코드 집합 내에서 레코드에서 레코드로 이동할 수 있습니다.

이 항목에서는 다음 내용을 설명합니다.

한 레코드에서 다른 레코드로 스크롤

클래스 CRecordsetMove 레코드 집합 내에서 스크롤하기 위한 멤버 함수를 제공합니다. 이러한 함수는 현재 레코드를 행 집합별로 이동합니다. 대량 행 페치를 Move 구현한 경우 작업은 행 집합의 크기별로 레코드 집합의 위치를 변경합니다. 대량 행 페치를 구현하지 않은 경우 함수에 대한 Move 호출은 매번 레코드 집합의 위치를 하나씩 변경합니다. 대량 행 페치 에 대한 자세한 내용은 레코드 집합: 대량 레코드 가져오기(ODBC)를 참조하세요.

참고 항목

레코드 집합을 이동할 때 삭제된 레코드를 건너뛰지 않을 수 있습니다. 자세한 내용은 IsDeleted 멤버 함수를 참조하세요.

함수 CRecordset 외에도 레코드 집합의 Move 끝을 지나 스크롤했는지 또는 레코드 집합의 시작 부분보다 앞서 스크롤했는지를 검사 멤버 함수를 제공합니다.

레코드 집합에서 스크롤이 가능한지 여부를 확인하려면 멤버 함수를 CanScroll 호출합니다.

스크롤하려면

  1. 레코드 하나 또는 행 집합 하나를 전달합니다. MoveNext 멤버 함수를 호출합니다.

  2. 뒤로 한 레코드 또는 한 행 집합: MovePrev 멤버 함수를 호출합니다.

  3. 레코드 집합의 첫 번째 레코드로 이동First 멤버 함수를 호출합니다.

  4. 레코드 집합의 마지막 레코드 또는 마지막 행 집합에 대해 MoveLast 멤버 함수를 호출합니다.

  5. 현재 위치에 상대적인 N 레코드: Move 멤버 함수를 호출합니다.

레코드 집합의 끝 또는 시작 부분을 테스트하려면

  1. 마지막 레코드를 지나 스크롤했나요? IsEOF 멤버 함수를 호출합니다.

  2. 첫 번째 레코드보다 앞서 스크롤했나요(뒤로 이동)? IsBOF 멤버 함수를 호출합니다.

다음 코드 예제에서는 어느 방향으로 스크롤할 때 레코드 집합의 제한을 사용하고 IsBOFIsEOF 검색합니다.

// Open a recordset; first record is current
CCustSet rsCustSet( NULL );
rsCustSet.Open( );

if( rsCustSet.IsBOF( ) )
    return;
    // The recordset is empty

// Scroll to the end of the recordset, past
// the last record, so no record is current
while ( !rsCustSet.IsEOF( ) )
    rsCustSet.MoveNext( );

// Move to the last record
rsCustSet.MoveLast( );

// Scroll to beginning of the recordset, before
// the first record, so no record is current
while( !rsCustSet.IsBOF( ) )
    rsCustSet.MovePrev( );

// First record is current again
rsCustSet.MoveFirst( );

IsEOF 는 레코드 집합이 마지막 레코드를 지나면 0이 아닌 값을 반환합니다. IsBOF 는 레코드 집합이 첫 번째 레코드보다 앞에 놓이면(모든 레코드 앞에) 0이 아닌 값을 반환합니다. 두 경우 모두 작동할 현재 레코드가 없습니다. 이미 TRUE일 때 IsBOF 호출 MovePrev 하거나 이미 TRUE인 경우 IsEOF 호출 MoveNext 하는 경우 프레임워크는 .를 CDBExceptionthrow합니다. 빈 레코드 집합을 사용하고 IsBOFIsEOF 검사 수도 있습니다.

레코드 집합 탐색 에 대한 자세한 내용은 레코드 집합: 책갈피 및 절대 위치(ODBC)를 참조하세요.

스크롤이 지원되는 경우

원래 설계한 대로 SQL은 앞으로 스크롤만 제공했지만 ODBC는 스크롤 기능을 확장합니다. 스크롤에 사용할 수 있는 지원 수준은 애플리케이션에서 작동하는 ODBC 드라이버, 드라이버의 ODBC API 규칙 수준 및 ODBC 커서 라이브러리가 메모리에 로드되는지 여부에 따라 달라집니다. 자세한 내용은 ODBC 및 ODBC: ODBC 커서 라이브러리를 참조하세요.

커서 라이브러리가 사용되는지 여부를 제어할 수 있습니다. CDatabase::Open에 대한 bUseCursorLibdwOptions 매개 변수를 참조하세요.

참고 항목

MFC DAO 클래스와 달리 MFC ODBC 클래스는 지정된 조건을 충족하는 다음(또는 이전) 레코드를 찾기 위한 함수 집합 Find 을 제공하지 않습니다.

참고 항목

레코드 집합(ODBC)
CRecordset::CanScroll
CRecordset::CheckRowsetError
레코드 집합: 레코드 필터링(ODBC)