Як використовувати закладки?

Перш ніж відкрити в набір рядків, ви повинні сказати постачальник потрібно використовувати закладки. Щоб зробити це, властивість DBPROP_BOOKMARKS вірно в ваш набір властивостей. Постачальник вилучає закладки як стовпець нуль, так що ви повинні використовувати спеціальні макрос 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, правда);

Продукт CTable < CAccessor <CProduct> >;
продукт.Відкрити (сесія, "Продукти" та propset)

Якщо ви використовуєте CDynamicAccessor, буфер динамічно розподіляється під час виконання. У цьому випадку можна використовувати є спеціалізованою версією CBookmark , для яких не вказано довжина буфера. Функція GetBookmark для отримання закладки з поточного запису, як показано тут:

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

propset.AddProperty (DBPROP_BOOKMARKS, правда);
продукт.Відкрити (сесія, "Продукти" та propset);
продукт.MoveNext();
продукт.GetBookmark(&bookmark);

Index