Как Я могу использовать закладки?

Перед открытием набора строк сообщите поставщику необходимо использовать закладки. Это сделать, свойству DBPROP_BOOKMARKS значение true в набор свойств. Поставщик извлекает закладки как столбца равно нулю, поэтому если вы используете статического доступа необходимо использовать специальный макрос BOOKMARK_ENTRY и класс CBookmark . CBookmark — это шаблонный класс, где аргумент имеет длину в байтах буфера закладки. Длина буфера, необходимого для закладки зависит от поставщика. При использовании поставщика ODBC OLE DB, как показано в следующем примере буфер должен быть 4 байта.

класс CProduct
{
общественности:
   CBookmarklt; 4 > закладки;

BEGIN_COLUMN_MAP(CProduct)
      BOOKMARK_ENTRY(Bookmark)
   END_COLUMN_MAP()
};

CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty (DBPROP_BOOKMARKS, true);

CTable < CAccessor <CProduct> > продукт;
продукт.Открытый (сессия, «Продукты» и propset)

При использовании CDynamicAccessor, буфер динамически выделяется во время выполнения. В этом случае можно использовать специальную версию CBookmark , для которого не указан длину буфера. Используйте функцию GetBookmark , чтобы извлечь закладку из текущей записи, как показано здесь:

CTablelt;CDynamicAccessor > продукт;
Закладка CBookmark <>;
CDBPropSet propset(DBPROPSET_ROWSET);

propset.AddProperty (DBPROP_BOOKMARKS, true);
продукт.Открытый (сессия, «Продукты» и propset);
продукт.MoveNext();
продукт.GetBookmark(&bookmark);

Index