После изменения наследования RMyProviderRowset, вам нужно реализовать IRowsetLocate интерфейс. Вы можете найти определение интерфейса в Резюме интерфейс OLE DB Справочник программиста и OLEDB.H файл в документации SDK по OLE DB включают каталог.
Для реализации этого интерфейса:
IRowsetLocateImpl , полученных от IRowsetи реализуют производный класс.////////////////////////////////////////////////////////////////////////
/ / RowLoc.h
/ / класса IRowsetLocateImpl
шаблон lt; класс t >
класс ATL_NO_VTABLE IRowsetLocateImpl: государственные IRowsetImpl <T> {}
общественности:
STDMETHOD (сравнение) (HCHAPTER hReserved, ULONG cbBookmark1, const БАЙТ * pBookmark1, ULONG cbBookmark2, const БАЙТ * pBookmark2 DBCOMPARE * pComparison)
{
Возвращает значение S_OK;
}
STDMETHOD (GetRowsAt) (HWATCHREGION hReserved1, HCHAPTER hReserved2,
ULONG cbBookmark, const БАЙТ * pBookmark, ДЛИННЫЕ lRowsOffset
ДЛИННЫЕ вороны, ULONG * pcRowsObtained, HROW ** prghRows)
{
Возвращает значение S_OK;
}
STDMETHOD (GetRowsByBookmark) (HCHAPTER hReserved, ULONG вороны,
const ULONG rgcbBookmarks [], const БАЙТ * [rgpBookmarks],
HROW rghRows [], DBROWSTATUS rgRowStatus[])
{
Возвращает значение S_OK;
}
STDMETHOD (хеш) (HCHAPTER hReserved, ULONG cBookmarks,
const ULONG rgcbBookmarks [], const БАЙТ * [rgpBookmarks],
DWORD rgHashedValues [], DBROWSTATUS rgBookmarkStatus[])
{
ATLTRACENOTIMPL("IRowsetLocateImpl::GetRowsByBookmark");
}
}
В следующем разделе вы увидите полностью выполнить путем добавления закладки.