Partager via


Utilisation de signets

Avant d’ouvrir l’ensemble de lignes, vous devez indiquer au fournisseur que vous souhaitez utiliser des signets. Pour ce faire, définissez la DBPROP_BOOKMARKS propriété true sur dans votre jeu de propriétés. Le fournisseur récupère les signets en tant que colonne zéro. Vous devez donc utiliser la macro spéciale BOOKMARK_ENTRY et la CBookmark classe si vous utilisez un accesseur statique. CBookmark est une classe de modèle où l’argument est la longueur en octets de la mémoire tampon de signet. La longueur de la mémoire tampon requise pour un signet dépend du fournisseur. Si vous utilisez le fournisseur ODBC OLE DB, comme illustré dans l’exemple suivant, la mémoire tampon doit être de 4 octets.

class CProducts
{
public:
   CBookmark<4> bookmark;

   BEGIN_COLUMN_MAP(CProducts)
      BOOKMARK_ENTRY(bookmark)
   END_COLUMN_MAP()
};

Ensuite, utilisé par le code suivant :

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

CTable<CAccessor<CProducts>> product;
CSession session;
product.Open(session, "Products", &propset);

Si vous utilisez CDynamicAccessor, la mémoire tampon est définie dynamiquement au moment de l’exécution. Dans ce cas, vous pouvez utiliser une version spécialisée pour CBookmark laquelle vous ne spécifiez pas de longueur de mémoire tampon. Utilisez la fonction GetBookmark pour récupérer le signet à partir de l’enregistrement actif, comme indiqué dans cet exemple de code :

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);

Pour plus d’informations sur la prise en charge des signets dans les fournisseurs, consultez Prise en charge des fournisseurs pour les signets.

Voir aussi

Utilisation des accesseurs