책갈피 사용
행 집합을 열기 전에 책갈피를 사용하려는 공급자에게 알려야 합니다. 이렇게 하려면 속성 집합에서 DBPROP_BOOKMARKS
속성을 true
설정합니다. 공급자는 책갈피를 열 0으로 검색하므로 정적 접근자를 사용하는 경우 특수 매크로 BOOKMARK_ENTRY 클래스 CBookmark
를 사용해야 합니다. CBookmark
는 인수가 책갈피 버퍼의 길이(바이트)인 템플릿 클래스입니다. 책갈피에 필요한 버퍼의 길이는 공급자에 따라 달라집니다. 다음 예제와 같이 ODBC OLE DB 공급자를 사용하는 경우 버퍼는 4바이트여야 합니다.
class CProducts
{
public:
CBookmark<4> bookmark;
BEGIN_COLUMN_MAP(CProducts)
BOOKMARK_ENTRY(bookmark)
END_COLUMN_MAP()
};
그런 다음, 다음 코드에서 사용합니다.
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_BOOKMARKS, true);
CTable<CAccessor<CProducts>> product;
CSession session;
product.Open(session, "Products", &propset);
사용하는 CDynamicAccessor
경우 버퍼는 런타임에 동적으로 설정됩니다. 이 경우 버퍼 길이를 지정하지 않는 특수 버전을 CBookmark
사용할 수 있습니다. 이 코드 샘플과 같이 함수 GetBookmark
를 사용하여 현재 레코드에서 책갈피를 검색합니다.
CTable<CDynamicAccessor> product;
CBookmark<> bookmark;
CDBPropSet propset(DBPROPSET_ROWSET);
CSession session;
propset.AddProperty(DBPROP_BOOKMARKS, true);
product.Open(session, "Products", &propset);
product.MoveNext();
product.GetBookmark(&bookmark);
공급자에서 책갈피를 지원하는 방법에 대한 자세한 내용은 책갈피에 대한 공급자 지원을 참조 하세요.