คุณต้องเพิ่มการตั้งค่าคุณสมบัติ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)
}