Korzystanie z zakładek
Przed otwarciem zestawu wierszy należy poinformować dostawcę, że chcesz użyć zakładek. W tym celu ustaw DBPROP_BOOKMARKS
właściwość na true
w zestawie właściwości. Dostawca pobiera zakładki jako zero kolumny, dlatego należy użyć specjalnego makra BOOKMARK_ENTRY i CBookmark
klasy, jeśli używasz statycznej metody dostępu. CBookmark
to klasa szablonu, w której argument jest długością w bajtach buforu zakładki. Długość buforu wymaganego dla zakładki zależy od dostawcy. Jeśli używasz dostawcy OLE DB ODBC, jak pokazano w poniższym przykładzie, bufor musi mieć 4 bajty.
class CProducts
{
public:
CBookmark<4> bookmark;
BEGIN_COLUMN_MAP(CProducts)
BOOKMARK_ENTRY(bookmark)
END_COLUMN_MAP()
};
Następnie używany przez następujący kod:
CDBPropSet propset(DBPROPSET_ROWSET);
propset.AddProperty(DBPROP_BOOKMARKS, true);
CTable<CAccessor<CProducts>> product;
CSession session;
product.Open(session, "Products", &propset);
Jeśli używasz CDynamicAccessor
metody , bufor jest dynamicznie ustawiany w czasie wykonywania. W takim przypadku można użyć wyspecjalizowanej wersji CBookmark
, dla której nie określono długości buforu. Użyj funkcji GetBookmark
, aby pobrać zakładkę z bieżącego rekordu, jak pokazano w tym przykładzie kodu:
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);
Aby uzyskać informacje na temat obsługi zakładek w dostawcach, zobacz Obsługa dostawcy zakładek.