실행 단추 처리기 변경

아래 표시 된 것과 같이 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);
}

향상 된 공급자와 함께 사용 하기 위해 소비자를 수정 하는 것을 다시

Index