使用書籤
開啟資料列集之前,您必須告訴提供者您想要使用書籤。 若要這樣做,請將 DBPROP_BOOKMARKS
屬性設定為 true
屬性集。 提供者會將書籤擷取為數據行零,因此如果您使用靜態存取子,則必須使用特殊巨集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);
如需在提供者中支援書籤的資訊,請參閱 書籤的提供者支援。