Modifier le gestionnaire d'événements du bouton Run

Vous devez ajouter le code pour définir la propriété DBPROP_IRowsetLocate , comme illustré ci-dessous. Cette propriété indique le fournisseur que le consommateur veut une colonne signet. Dans ce code, la boucle tandis que contient un appel à IRowsetLocate::Compare. Cet appel devrait toujours réussir, puisqu'il compare un signet à lui-même. L'appel stocke le signet dans une variable temporaire, afin que la valeur sera disponible plus tard pour appeler MoveToBookmark.

//////////////////////////////////////////////////////////////////////
/ / TestProv consommateur demande au TestProvDlg.cpp

VOID CTestProvDlg::OnRun() {
   CCommandlt ;CAccessor <CProvider> > Tableau ;
   CDataSource source ;
   CSession session ;

Si (source.Open("MyProvider.MyProvider.1", NULL, NULL, NULL, NULL)! = S_OK)
      retour ;

Si (session.Open(source)! = S_OK)
      retour ;

CDBPropSet propset(DBPROPSET_ROWSET) ;
   propset.AddProperty(DBPROP_IRowsetLocate, true) ;
   Si (voir le tableau.Open(session, _T("c:\\public\\testprf2\\foo.txt"), &propset)! = S_OK)
      retour ;

CBookmark <4> tempBookmark ;
   ULONG ulCount = 0 ;
   alors que (voir le tableau.MoveNext() == S_OK)
   {

Comparer DBCOMPARE ;
      Si (ulCount == 2)
         tempBookmark = table.bookmark ;
         HR = table.Comparer (table.bookmark, table.bookmark,
                 & comparer) ;
      Si (FAILED(hr))
         ATLTRACE (_T ("comparer a échoué : 0x%X\n"), des ressources humaines) ;
      autre
         ATLASSERT (comparer == DBCOMPARE_EQ) ;

m_ctlString1.AddString(table.szCommand) ;
      m_ctlString2.AddString(table.szText) ;
      ulCount ++ ;
   }

tableau.MoveToBookmark(tempBookmark) ;
   m_ctlString1.AddString(table.szCommand) ;
   m_ctlString2.AddString(table.szText) ;
}

Retour à la modification de la consommation pour une utilisation avec le fournisseur amélioré

Index