DBPROP_IRowsetLocate özelliği için kod aşağıda gösterildiği gibi eklemelisiniz. Bu özellik sağlayıcı tüketicinin bir yer imi sütun istediğini söyler. Bu kodda, while loop çağrısı içeren IRowsetLocate::Compare. Kendisi için bir yer imi karşılaştırır çünkü bu çağrıyı her zaman, başarılı olmalıdır. Değeri daha sonra MoveToBookmark aramak kullanılabilir çağrı işareti geçici bir değişkende saklayarak.
//////////////////////////////////////////////////////////////////////
/ / TestProvDlg.cpp TestProv tüketici uygulama
void CTestProvDlg::OnRun() {}
CCommandlt;CAccessor <CProvider> > Tablo;
CDataSource kaynağı;
CSession oturumu;
Eğer (kaynak.Open("MyProvider.MyProvider.1", NULL, NULL, NULL, null)! = s_ok)
return;
Eğer (oturum.Open(source)! = s_ok)
return;
CDBPropSet propset(DBPROPSET_ROWSET);
propSet.AddProperty(DBPROP_IRowsetLocate, true);
Eğer (tablo.Open(Session, _T("c:\\public\\testprf2\\foo.txt"), &propSet)! = s_ok)
return;
CBookmark <4> tempBookmark;
ulong ulCount = 0;
(tablo.MoveNext() == s_ok)
{
dbcompare karşılaştırın;
Eğer (ulCount == 2)
tempBookmark = table.bookmark;
hr = tablo.Karşılaştır (table.bookmark, table.bookmark,
& karşılaştırmak);
Eğer (FAILED(hr))
atltrace (_t ("başarısız Karşılaştır: 0x%X\n"), hr);
başka
atlassert (Karşılaştır dbcompare_eq ==);
m_ctlString1.AddString(Table.szCommand);
m_ctlString2.AddString(Table.szText);
ulCount ++;
}
Tablo.MoveToBookmark(tempBookmark);
m_ctlString1.AddString(Table.szCommand);
m_ctlString2.AddString(Table.szText);
}
Tüketici ile geliştirilmiş sağlayıcısı kullanmak için geri değiştirmek için