Зміна обробника кнопку Запуск

Ви повинні додати код для властивості DBPROP_IRowsetLocate значення, як показано нижче. Ця властивість розповідає постачальника, що споживач хоче закладку стовпця. У цей код, а петлю містить заклик до IRowsetLocate::Compare. Цей заклик повинен завжди вдається, так як він порівнює закладку для себе. Виклик зберігає закладки в тимчасової змінної, щоб значення буде доступна пізніше для виклику MoveToBookmark.

//////////////////////////////////////////////////////////////////////
/ / TestProv споживчі застосування в TestProvDlg.cpp

CTestProvDlg::OnRun() до втрати {
   CCommandlt;CAccessor <CProvider> > Таблиця;
   CDataSource джерело;
   CSession сесії;

Якщо (джерело.Open("MyProvider.MyProvider.1", Null, Null, Null, Null)! = S_OK)
      повернення;

Якщо (сесії.Open(Source)! = S_OK)
      повернення;

CDBPropSet propset(DBPROPSET_ROWSET);
   propset.AddProperty(DBPROP_IRowsetLocate, true);
   Якщо (таблиці.Open(Session, _T("c:\\public\\testprf2\\foo.txt"), &propset)! = S_OK)
      повернення;

CBookmark <4> tempBookmark;
   ULONG-ulCount = 0;
   під час (таблиці.MoveNext() = = S_OK)
   {

Порівняйте DBCOMPARE;
      Якщо (ulCount = = 2)
         tempBookmark = table.bookmark;
         hr = таблиці.Порівняйте (table.bookmark, table.bookmark,
                 & порівняти);
      Якщо (FAILED(hr))
         ATLTRACE (_T ("порівняння не вдалося: 0x%X\n"), hr);
      інше
         ATLASSERT (Порівняйте = = DBCOMPARE_EQ);

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

таблиці.MoveToBookmark(tempBookmark);
   m_ctlString1.AddString(Table.szCommand);
   m_ctlString2.AddString(Table.szText);
}

Назад до зміни споживача для використання розширеної постачальника послуг

Index