Partager via


Utilisation des signets

Mise à jour : novembre 2007

Avant d'ouvrir le jeu de ligne, vous devez indiquer au fournisseur que vous souhaitez utiliser des signets. Pour ce faire, affectez à la propriété DBPROP_BOOKMARKS la valeur true dans votre jeu de propriétés. Le fournisseur récupère les signets en tant que colonne zéro, ce qui fait que vous devez utiliser la macro spéciale BOOKMARK_ENTRY et la classe CBookmark si vous utilisez un accesseur statique. CBookmark est une classe avec modèles où l'argument correspond à la taille en octets de la mémoire tampon des signets. La taille de la mémoire tampon requise pour un signet dépend du fournisseur. Si vous utilisez le fournisseur OLE DB ODBC, comme le montre l'exemple suivant, la mémoire tampon doit avoir une capacité de 4 octets.

class CProducts
{
public:
   CBookmark<4>   bookmark;

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

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

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

Si vous utilisez CDynamicAccessor, la mémoire tampon est affectée dynamiquement au moment de l'exécution. En ce cas, vous pouvez utiliser une version spécialisée de CBookmark pour laquelle vous ne spécifiez pas une taille de mémoire tampon. Utilisez la fonction GetBookmark pour récupérer le signet de l'enregistrement en cours, comme indiqué dans cet exemple de code :

CTable<CDynamicAccessor> product;
CBookmark<>              bookmark;
CDBPropSet propset(DBPROPSET_ROWSET);

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 par les fournisseurs, consultez Prise en charge des signets par le fournisseur.

Voir aussi

Concepts

Utilisation des accesseurs