레코드 집합: 책갈피와 절대 위치(ODBC)

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

레코드 집합을 탐색할 때 특정 레코드로 돌아가는 방법이 필요한 경우가 많습니다. 레코드의 책갈피와 절대 위치는 이러한 두 가지 메서드를 제공합니다.

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

MFC ODBC의 책갈피

책갈피는 레코드를 고유하게 식별합니다. 레코드 집합을 탐색할 때 레코드 집합에서 레코드를 삭제할 수 있으므로 레코드의 절대 위치에 항상 의존할 수는 없습니다. 레코드의 위치를 추적하는 신뢰할 수 있는 방법은 책갈피를 사용하는 것입니다. 클래스 CRecordset 는 다음의 멤버 함수를 제공합니다.

  • 현재 레코드의 책갈피를 가져와 변수(GetBookmark)에 저장할 수 있습니다.

  • 이전에 변수(SetBookmark)에 저장한 책갈피를 지정하여 지정된 레코드로 빠르게 이동합니다.

다음 예제에서는 이러한 멤버 함수를 사용하여 현재 레코드를 표시하고 나중에 레코드로 반환하는 방법을 보여 줍니다.

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

CDBVariant varRecordToReturnTo;
rs.GetBookmark( varRecordToReturnTo );

// More code in which you
// move to other records

rs.SetBookmark( varRecordToReturnTo );

CDBVariant 클래스 개체에서 기본 데이터 형식을 추출할 필요가 없습니다. 값을 GetBookmark 할당하고 .를 사용하여 해당 책갈피로 SetBookmark돌아갑니다.

참고 항목

ODBC 드라이버 및 레코드 집합 유형에 따라 책갈피가 지원되지 않을 수 있습니다. CRecordset::CanBookmark를 호출 하여 책갈피가 지원되는지 여부를 쉽게 확인할 수 있습니다. 또한 책갈피가 지원되는 경우 CRecordset::Open 멤버 함수에서 옵션을 지정하여 CRecordset::useBookmarks 책갈피를 명시적으로 구현하도록 선택해야 합니다. 또한 특정 레코드 집합 작업 후에 책갈피의 지속성을 검사 합니다. 예를 들어 레코드 집합인 경우 Requery 책갈피가 더 이상 유효하지 않을 수 있습니다. CDatabase::GetBookmarkPersistence를 호출하여 안전하게 호출SetBookmark할 수 있는지 여부를 검사.

MFC ODBC의 절대 위치

책갈피 외에도 클래스 CRecordset 를 사용하면 서수 위치를 지정하여 현재 레코드를 설정할 수 있습니다. 이를 절대 위치 지정이라고합니다.

참고 항목

절대 위치 지정은 앞으로 전용 레코드 집합에서 사용할 수 없습니다. 정방향 전용 레코드 집합에 대한 자세한 내용은 레코드 집합(ODBC)을 참조하세요.

절대 위치를 사용하여 현재 레코드 포인터를 이동하려면 CRecordset::SetAbsolutePosition을 호출 합니다. 값을 SetAbsolutePosition전달하면 해당 서수 위치에 해당하는 레코드가 현재 레코드가 됩니다.

참고 항목

레코드의 절대 위치는 잠재적으로 신뢰할 수 없습니다. 사용자가 레코드 집합에서 레코드를 삭제하면 후속 레코드의 서수 위치가 변경됩니다. 책갈피는 현재 레코드를 이동하는 데 권장되는 방법입니다. 자세한 내용은 MFC ODBC의 책갈피를 참조하세요.

레코드 집합 탐색 에 대한 자세한 내용은 레코드 집합: 스크롤(ODBC)을 참조하세요.

참고 항목

레코드 집합(ODBC)