การเปลี่ยนแปลงการจัดการปุ่ม Run

คุณต้องเพิ่มการตั้งค่าคุณสมบัติDBPROP_IRowsetLocateรหัสดังแสดงด้านล่าง คุณสมบัตินี้บอกกับผู้ให้บริการว่า ผู้บริโภคที่ต้องการคอลัมน์ที่คั่นหน้า ในรหัสนี้ การวนรอบในขณะที่ประกอบด้วยการเรียกไปยัง IRowsetLocate::Compare เรียกนี้ควรจะสำเร็จ เนื่องจากมันเปรียบเทียบคั่นหน้าตัวเอง การเรียกเก็บคั่นหน้าในตัวแปรชั่วคราว เพื่อให้ค่าจะใช้ได้ในภายหลังเพื่อเรียกMoveToBookmark?

//////////////////////////////////////////////////////////////////////
/ / ผู้บริโภค TestProv Application ใน TestProvDlg.cpp

โมฆะ CTestProvDlg::OnRun() {
   CCommandltCAccessor <CProvider> > ตาราง
   แหล่งที่มาของ CDataSource
   CSession เซสชัน

ถ้า (แหล่งที่มาOpen("MyProvider.MyProvider.1", NULL, NULL, NULL, NULL) ! = S_OK)
      กลับ

ถ้า (เซสชันนี้Open(source) ! = S_OK)
      กลับ

CDBPropSet propset(DBPROPSET_ROWSET)
   propsetAddProperty(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