레코드 집합: 책갈피와 절대 위치(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)을 참조하세요.