다음을 통해 공유


CRecordset::Move

앞 이나 뒤로 레코드 집합 내에서 현재 레코드 포인터를 이동합니다.

virtual void Move( 
   long nRows, 
   WORD wFetchType = SQL_FETCH_RELATIVE  
);

매개 변수

  • nRows
    앞으로 또는 뒤로 이동 하는 행 개수입니다.양수 값을 전달, 레코드 집합의 끝으로 이동 합니다.음의 값 쪽으로 처음 뒤로 이동

  • wFetchType
    행 집합 결정은 이동 반입 됩니다.자세한 내용은 설명 부분을 참조 하십시오.

설명

0의 값을 전달 하는 경우 nRows, 이동 ; 현재 레코드를 새로 고칩니다. 이동 현재 종료 됩니다 AddNew 또는 편집 모드를 하기 전에 현재 레코드의 값을 복원 하 고 AddNew 또는 편집 호출 되었습니다.

[!참고]

레코드 집합에서 이동할 때 삭제 된 레코드를 건너뛸 수 없습니다.참조 CRecordset::IsDeleted 에 대 한 자세한 내용은.열면는 CRecordsetskipDeletedRecords 옵션 집합을 이동 경우 어설션는 nRows 매개 변수가 0입니다.이 동작은 동일한 데이터를 사용 하 여 다른 클라이언트 응용 프로그램에서 삭제할 행 새로 고침이 되지 않습니다.참조는 dwOption 매개 변수에서 열려 에 대 한 설명은 skipDeletedRecords.

이동 레코드 집합에서 행 집합 위치를 변경 합니다.값에 따라 nRows 및 wFetchType, 이동 적절 한 행 집합을 반입 하 고 다음 현재 레코드는 행 집합에 있는 첫 번째 레코드를 만듭니다.대량 행 페치를 구현한 경우 라면 행 집합 크기 1 것입니다.행 집합을 인출 하는 경우 이동 를 직접 호출 하는 CheckRowsetError 반입에서 발생 하는 모든 오류를 처리 하는 멤버 함수.

전달 하면 값에 따라 이동 에 해당 하는 CRecordset 멤버 함수입니다.특히, 값의 wFetchType 보다 직관적이 지는 멤버 함수 및 현재 레코드로 이동 하는 방법이 종종 나타낼 수 있습니다.

다음 표에서 가능한 값에 대 한 wFetchType, 행 집합은 이동 반입 됩니다 기반 wFetchType 및 nRows, 및 해당 해당 하는 멤버 함수 wFetchType.

wFetchType

반입 된 행 집합

해당 하는 멤버 함수

SQL_FETCH_RELATIVE(기본값)

시작 하는 행 집합 nRows 행 집합의 현재 행의 첫 번째 행입니다.

 

SQL_FETCH_NEXT

다음 행 집합입니다. nRows무시 됩니다.

MoveNext

SQL_FETCH_PRIOR

이전 행 집합입니다. nRows무시 됩니다.

MovePrev

SQL_FETCH_FIRST

레코드 집합의 첫 번째 행 집합. nRows무시 됩니다.

MoveFirst

SQL_FETCH_LAST

레코드 집합에서 마지막 전체 행 집합입니다. nRows무시 됩니다.

MoveLast

SQL_FETCH_ABSOLUTE

If nRows > 0에서 시작 하는 행 집합 nRows 레코드 집합의 행에서 시작 합니다.If nRows < 0에서 시작 하는 행 집합 nRows 행 레코드 집합의 끝에서.경우 nRows = 0, 시작 파일 (BOF) 상태를 반환 합니다.

SetAbsolutePosition

SQL_FETCH_BOOKMARK

책갈피 값에 해당 하는 행에서 시작 하는 행 집합 nRows.

SetBookmark

[!참고]

앞 으로만 이동 가능한 레코드 집합에 대 한 이동 는 값만 유효 SQL_FETCH_NEXT 의 wFetchType.

주의 정보주의

호출 이동 레코드 집합에 레코드가 없을 경우 예외를 throw 합니다.레코드 집합에 레코드가 있는지 여부를 확인 하려면 호출 IsBOFIsEOF.

[!참고]

시작과 끝을 레코드 집합의 지 나 스크롤 했는지 경우 (IsBOF 또는 IsEOF 0이 아닌 반환), 호출을 이동 함수를 throw 됩니다 것 같습니다는 CDBException.예를 들어, 경우 IsEOF 0이 아닌 값을 반환 하 고 IsBOF 다음 되지 않습니다 MoveNext 예외를 throw 합니다 하지만 MovePrev 것입니다.

[!참고]

호출 하는 경우 이동 중 현재 레코드 업데이트 또는 추가, 업데이트 경고 없이 손실 됩니다.

레코드 집합 탐색에 대 한 자세한 내용은 문서를 참조 하십시오. 레코드 집합: 스크롤 (ODBC)레코드 집합: 책갈피와 절대 위치 (ODBC).대량 행 페칭 (fetching) 하는 방법에 대 한 자세한 내용은 레코드 집합: 레코드 페치 대량 (ODBC).관련 내용은 ODBC API 함수 SQLExtendedFetch 에 있는 Windows SDK.

예외

이 메서드가 형식의 예외를 throw 할 수 있습니다 CDBException *CMemoryException*.

예제

// rs is a CRecordset or a CRecordset-derived object

// Change the rowset size to 5
rs.SetRowsetSize(5);

// Open the recordset
rs.Open(CRecordset::dynaset, NULL, CRecordset::useMultiRowFetch);

// Move to the first record in the recordset
rs.MoveFirst();

// Move to the sixth record
rs.Move(5);
// Other equivalent ways to move to the sixth record:
rs.Move(6, SQL_FETCH_ABSOLUTE);
rs.SetAbsolutePosition(6);
// In this case, the sixth record is the first record in the next rowset,
// so the following are also equivalent:
rs.MoveFirst();
rs.Move(1, SQL_FETCH_NEXT);

rs.MoveFirst();
rs.MoveNext();

요구 사항

헤더: afxdb.h

참고 항목

참조

CRecordset 클래스

계층 구조 차트

CRecordset::MoveNext

CRecordset::MovePrev

CRecordset::MoveFirst

CRecordset::MoveLast

CRecordset::SetAbsolutePosition

CRecordset::SetBookmark

CRecordset::IsBOF

CRecordset::IsEOF

CRecordset::CheckRowsetError