다음을 통해 공유


IRowsetLocateImpl 클래스

행 집합에서 임의의 행을 가져오는 OLE DB IRowsetLocate 인터페이스를 구현합니다.

구문

template <
   class T,
   class RowsetInterface,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap < RowClass::KeyType, RowClass* >,
   class BookmarkKeyType = LONG,
   class BookmarkType = LONG,
   class BookmarkMapClass = CAtlMap < RowClass::KeyType, RowClass* >>
class ATL_NO_VTABLE IRowsetLocateImpl : public IRowsetImpl<
       T,
       RowsetInterface,
       RowClass,
       MapClass>

매개 변수

T
에서 파생된 클래스입니다 IRowsetLocateImpl.

RowsetInterface
에서 파생된 클래스입니다 IRowsetImpl.

RowClass
에 대한 스토리지 단위입니다 HROW.

MapClass
공급자가 보유한 모든 행 핸들의 스토리지 단위입니다.

BookmarkKeyType
LONG 또는 문자열과 같은 책갈피의 형식입니다. 일반 책갈피의 길이는 2바이트 이상이어야 합니다. (싱글바이트 길이는 OLE DB 표준 책갈피 DBBMK_LASTDBBMK_FIRSTDBBMK_INVALID.)

BookmarkType
책갈피-데이터 관계를 유지 관리하기 위한 매핑 메커니즘입니다.

BookmarkMapClass
책갈피가 보유한 모든 행 핸들에 대한 스토리지 단위입니다.

요구 사항

헤더: atldb.h

멤버

인터페이스 메서드

속성 설명
비교 두 책갈피를 비교합니다.
GetRowsAt 책갈피에서 오프셋으로 지정된 행으로 시작하는 행을 가져옵니다.
GetRowsByBookmark 지정된 책갈피와 일치하는 행을 가져옵니다.
해시 지정된 책갈피에 대한 해시 값을 반환합니다.

데이터 멤버

속성 설명
m_rgBookmarks 책갈피 배열입니다.

설명

IRowsetLocateImpl 는 IRowsetLocate 인터페이스의 OLE DB 템플릿 구현입니다 . IRowsetLocate 은 행 집합에서 임의의 행을 가져오는 데 사용됩니다. 이 인터페이스를 구현하지 않는 행 집합은 행 집합입니다 sequential . 행 집합에 있는 경우 열 0은 행의 책갈피입니다. 이 열을 읽으면 IRowsetLocate 동일한 행의 위치를 변경하는 데 사용할 수 있는 책갈피 값을 얻습니다.

IRowsetLocateImpl 는 공급자에서 책갈피 지원을 구현하는 데 사용됩니다. 책갈피는 소비자가 행으로 빠르게 반환하여 데이터에 고속으로 액세스할 수 있도록 하는 자리 표시자(행 집합의 인덱스)입니다. 공급자는 행을 고유하게 식별할 수 있는 책갈피를 결정합니다. 메서드를 사용하여 IRowsetLocateImpl 책갈피를 비교하고, 오프셋별로 행을 가져오고, 책갈피별로 행을 가져오고, 책갈피에 대한 해시 값을 반환할 수 있습니다.

행 집합에서 OLE DB 책갈피를 지원하려면 행 집합이 이 클래스에서 상속되도록 합니다.

책갈피 지원을 구현하는 방법에 대한 자세한 내용은 플랫폼 SDK의 OLE DB 프로그래머 참조에서 Visual C++ 프로그래머 가이드책갈피의 책갈피에 대한 공급자 지원을 참조하세요.

IRowsetLocateImpl::Compare

두 책갈피를 비교합니다.

구문

STDMETHOD (Compare )(HCHAPTER /* hReserved */,
   DBBKMARK cbBookmark1,
   const BYTE* pBookmark1,
   DBBKMARK cbBookmark2,
   const BYTE* pBookmark2,
   DBCOMPARE* pComparison);

매개 변수

OLE DB 프로그래머 참조에서 IRowsetLocate::Compare를 참조하세요.

설명

책갈피 중 하나가 표준 OLE DB 정의 표준 책갈피(DBBMK_FIRSTDBBMK_LAST또는DBBMK_INVALID)일 수 있습니다. 반환된 pComparison 값은 두 책갈피 간의 관계를 나타냅니다.

  • DBCOMPARE_LT(이전cbBookmark1 )입니다 cbBookmark2.

  • DBCOMPARE_EQ(cbBookmark1 .와 같음 cbBookmark2)

  • DBCOMPARE_GT(.cbBookmark1 ) 이후 cbBookmark2입니다.

  • DBCOMPARE_NE(책갈피는 같고 순서가 지정되지 않습니다.)

  • DBCOMPARE_NOTCOMPARABLE(책갈피를 비교할 수 없습니다.)

IRowsetLocateImpl::GetRowsAt

책갈피에서 오프셋으로 지정된 행으로 시작하는 행을 가져옵니다.

구문

STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
   HCHAPTER hReserved2,
   DBBKMARK cbBookmark,
   const BYTE* pBookmark,
   DBROWOFFSET lRowsOffset,
   DBROWCOUNT cRows,
   DBCOUNTITEM* pcRowsObtained,
   HROW** prghRows);

매개 변수

OLE DB 프로그래머 참조에서 IRowsetLocate::GetRowsAt을 참조하세요.

설명

커서 위치에서 대신 가져오려면 IRowset::GetRowsAt을 사용합니다.

IRowsetLocateImpl::GetRowsAt 은 커서 위치를 변경하지 않습니다.

IRowsetLocateImpl::GetRowsByBookmark

지정된 책갈피와 일치하는 하나 이상의 행을 가져옵니다.

구문

STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
   DBCOUNTITEM cRows,
   const DBBKMARK rgcbBookmarks[],
   const BYTE* rgpBookmarks,
   HROW rghRows[],
   DBROWSTATUS* rgRowStatus[]);

매개 변수

hReserved
[in] IRowsetLocate::GetRowsByBookmark에 대한 hChapter 매개 변수에 해당합니다.

다른 매개 변수는 OLE DB 프로그래머 참조에서 IRowsetLocate::GetRowsByBookmark를 참조하세요.

설명

책갈피는 정의한 값 또는 OLE DB 표준 책갈피(DBBMK_FIRST또는DBBMK_LAST)일 수 있습니다. 커서 위치를 변경하지 않습니다.

IRowsetLocateImpl::Hash

지정된 책갈피에 대한 해시 값을 반환합니다.

구문

STDMETHOD (Hash )(HCHAPTER /* hReserved */,
   DBBKMARK cbBookmarks,
   const DBBKMARK* rgcbBookmarks[],
   const BYTE* rgpBookmarks[],
   DBHASHVALUE rgHashValues[],
   DBROWSTATUS rgBookmarkStatus[]);

매개 변수

hReserved
[in] IRowsetLocate::Hash에 대한 hChapter 매개 변수에 해당합니다.

다른 매개 변수는 OLE DB 프로그래머 참조에서 IRowsetLocate::Hash를 참조하세요.

IRowsetLocateImpl::m_rgBookmarks

책갈피 배열입니다.

구문

CAtlArray<DBROWCOUNT> m_rgBookmarks;

참고 항목

OLE DB 공급자 템플릿
OLE DB 공급자 템플릿 구조
IRowsetLocate:책갈피에 대한 IRowset공급자 지원
책갈피