아래 표시 된 것과 같이 DBPROP_IRowsetLocate 속성을 설정 하는 코드를 추가 해야 합니다. 이 속성은 소비자가 책갈피 열 공급자를 알려줍니다. 동안 루프에 전화를 포함 하는이 코드에서 IRowsetLocate::Compare. 이 호출 해야 항상 성공 이후 자체를 책갈피와 비교 합니다. 통화 값 MoveToBookmark 를 호출 하는 나중에 사용할 수 있도록 임시 변수에 책갈피를 저장。
//////////////////////////////////////////////////////////////////////
/ / TestProv 소비자 응용 프로그램 TestProvDlg.cpp
void 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);
}