Come a utilizzare i segnalibri?

Prima di aprire il set di righe, si deve dire il provider che si desidera utilizzare i segnalibri. A tale scopo, impostare la proprietà DBPROP_BOOKMARKS su true nel vostro set di proprietà. Il provider recupera i segnalibri come colonna zero, quindi è necessario utilizzare la macro speciale BOOKMARK_ENTRY e la classe CBookmark se si sta utilizzando una funzione di accesso statica. CBookmark è una classe basata su modelli dove l'argomento è la lunghezza in byte del buffer segnalibro. La lunghezza del buffer necessaria per un segnalibro dipende dal provider. Se si utilizza il provider OLE DB ODBC, come illustrato nell'esempio seguente, il buffer deve essere 4 byte.

classe CProduct
{
pubblica:
   CBookmarklt; 4 > segnalibro;

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

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

CTable < CAccessor <CProduct> > prodotto;
prodotto.Aperto (sessione, "Prodotti" e propset)

Se si utilizza CDynamicAccessor, il buffer viene allocato dinamicamente in fase di esecuzione. In questo caso, è possibile utilizzare una versione specializzata di CBookmark per i quali non si specifica una lunghezza del buffer. Utilizzare la funzione GetBookmark per recuperare il segnalibro del record corrente, come illustrato di seguito:

CTablelt;CDynamicAccessor > prodotto;
CBookmark < > segnalibro;
CDBPropSet propset(DBPROPSET_ROWSET);

propset.AddProperty (DBPROP_BOOKMARKS, true);
prodotto.Aperto (sessione, "Prodotti" e propset);
prodotto.MoveNext ();
prodotto.GetBookmark(&bookmark);

Index