Zmiana obsługi przycisku Uruchom

Należy dodać kod, aby ustawić właściwość DBPROP_IRowsetLocate , jak pokazano poniżej. Ta właściwość informuje dostawcę, że konsument chce kolumnę zakładki. W tym kodzie pętli natomiast zawiera wywołanie IRowsetLocate::Compare. To wywołanie powinna zawsze poprawne, ponieważ porównuje zakładki do siebie. Wywołanie zapisuje zakładki w zmiennej tymczasowej, tak, że wartość będzie dostępny później do wywołania MoveToBookmark.

//////////////////////////////////////////////////////////////////////
/ / Application TestProv konsumentów w TestProvDlg.cpp

void CTestProvDlg::OnRun() {}
   CCommandlt;CAccessor <CProvider> > tabeli;
   CDataSource źródła;
   CSession sesji;

Jeżeli (źródła.Open("MyProvider.MyProvider.1", null, null, null, null)! = wartość S_OK)
      powrotu;

Jeżeli (sesji.Open(source)! = wartość S_OK)
      powrotu;

CDBPropSet propset(DBPROPSET_ROWSET);
   zestaw właściwości.AddProperty(DBPROP_IRowsetLocate, true);
   Jeżeli (tabela.Open(Session, _T("c:\\public\\testprf2\\foo.txt"), &propset)! = wartość S_OK)
      powrotu;

CBookmark <4> tempBookmark;
   ULONG ulCount = 0;
   podczas (tabela.MoveNext() == wartość S_OK)
   {

Porównaj DBCOMPARE;
      Jeżeli (ulCount == 2)
         tempBookmark = table.bookmark;
         hr = tabeli.Porównaj (table.bookmark, table.bookmark,
                 & porównać);
      Jeżeli (FAILED(hr))
         ATLTRACE (_T ("porównania nie powiodła się: 0x%X\n"), hr);
      Else
         ATLASSERT (porównaj == DBCOMPARE_EQ);

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

Tabela.MoveToBookmark(tempBookmark);
   m_ctlString1.AddString(Table.szCommand);
   m_ctlString2.AddString(Table.szText);
}

Wróć do modyfikowania konsumentów do użytku z rozszerzonego dostawcy

Index