IRowsetLocateImpl – třída
Implementuje rozhraní OLE DB IRowsetLocate, které načte libovolné řádky ze sady řádků.
Syntaxe
template <
class T,
class RowsetInterface,
class RowClass = CSimpleRow,
class MapClass = CAtlMap < RowClass::KeyType, RowClass* >,
class BookmarkKeyType = LONG,
class BookmarkType = LONG,
class BookmarkMapClass = CAtlMap < RowClass::KeyType, RowClass* >>
class ATL_NO_VTABLE IRowsetLocateImpl : public IRowsetImpl<
T,
RowsetInterface,
RowClass,
MapClass>
Parametry
T
Třída odvozená z IRowsetLocateImpl
.
RowsetInterface
Třída odvozená z IRowsetImpl
.
RowClass
Jednotka úložiště pro jednotku HROW
.
MapClass
Jednotka úložiště pro všechny popisovače řádků uchovávané poskytovatelem.
BookmarkKeyType
Typ záložky, například LONG nebo řetězec. Běžné záložky musí mít délku nejméně dvou bajtů. (Délka jednobajtů je vyhrazena pro standardní záložky DBBMK_LAST
DBBMK_FIRST
OLE DB a DBBMK_INVALID
.)
BookmarkType
Mechanismus mapování pro udržování relací mezi záložkou a daty.
BookmarkMapClass
Jednotka úložiště pro všechny popisovače řádků uchovávané záložkou.
Požadavky
Hlavička: atldb.h
Členové
Metody rozhraní
Název | Popis |
---|---|
Compare | Porovná dvě záložky. |
GetRowsAt | Načte řádky začínající řádky určené posunem od záložky. |
GetRowsByBookmark | Načte řádky, které odpovídají zadaným záložkám. |
Hash | Vrátí hodnoty hash pro zadané záložky. |
Datové členy
Název | Popis |
---|---|
m_rgBookmarks | Pole záložek. |
Poznámky
IRowsetLocateImpl
je OLE DB Templates implementace IRowsetLocate rozhraní. IRowsetLocate
slouží k načtení libovolných řádků ze sady řádků. Sada řádků, která toto rozhraní neimplementuje, je sequential
sada řádků. Pokud IRowsetLocate
je v sadě řádků, sloupec 0 je záložkou pro řádky. Čtení tohoto sloupce získá hodnotu záložky, kterou lze použít k přemístění na stejný řádek.
IRowsetLocateImpl
slouží k implementaci podpory záložek v poskytovatelích. Záložky jsou zástupné symboly (indexy v sadě řádků), které uživatelům umožňují rychle se vrátit na řádek, což umožňuje vysokorychlostní přístup k datům. Poskytovatel určuje, které záložky mohou jednoznačně identifikovat řádek. Pomocí IRowsetLocateImpl
metod můžete porovnat záložky, načíst řádky posunem, načíst řádky podle záložky a vrátit hodnoty hash pro záložky.
Chcete-li podporovat záložky OLE DB v sadě řádků, zdědit sadu řádků z této třídy.
Informace o implementaci podpory záložek naleznete v tématu Podpora zprostředkovatele pro záložky v Průvodci programátorem visual C++ a záložky v odkazech programátorů OLE DB v sadě Platform SDK.
IRowsetLocateImpl::Compare
Porovná dvě záložky.
Syntaxe
STDMETHOD (Compare )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmark1,
const BYTE* pBookmark1,
DBBKMARK cbBookmark2,
const BYTE* pBookmark2,
DBCOMPARE* pComparison);
Parametry
Viz IRowsetLocate::Compare v odkazech programátora OLE DB.
Poznámky
Záložky můžou být standardní standardní záložkou definovanou ole DB (DBBMK_FIRST
, DBBMK_LAST
nebo DBBMK_INVALID
). Hodnota vrácená v pComparison
indikuje vztah mezi těmito dvěma záložkami:
DBCOMPARE_LT (
cbBookmark1
je předcbBookmark2
.)DBCOMPARE_EQ (
cbBookmark1
je rovnocbBookmark2
.)DBCOMPARE_GT (
cbBookmark1
je zacbBookmark2
.)DBCOMPARE_NE (Záložky jsou stejné a nejsou seřazené.)
DBCOMPARE_NOTCOMPARABLE (záložky nelze porovnat.)
IRowsetLocateImpl::GetRowsAt
Načte řádky začínající řádky určené posunem od záložky.
Syntaxe
STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
HCHAPTER hReserved2,
DBBKMARK cbBookmark,
const BYTE* pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Parametry
Viz IRowsetLocate::GetRowsAt v odkazech programátora OLE DB.
Poznámky
K načtení z pozice kurzoru použijte IRowset::GetRowsAt.
IRowsetLocateImpl::GetRowsAt
nezmění pozici kurzoru.
IRowsetLocateImpl::GetRowsByBookmark
Načte jeden nebo více řádků, které odpovídají zadaným záložkám.
Syntaxe
STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE* rgpBookmarks,
HROW rghRows[],
DBROWSTATUS* rgRowStatus[]);
Parametry
hReserved
[v] Odpovídá parametru hChapter pro IRowsetLocate::GetRowsByBookmark.
Další parametry naleznete v části IRowsetLocate::GetRowsByBookmark v odkazech programátora OLE DB.
Poznámky
Záložkou může být hodnota, kterou definujete, nebo standardní záložky OLE DB (DBBMK_FIRST
nebo DBBMK_LAST
). Nezmění pozici kurzoru.
IRowsetLocateImpl::Hash
Vrátí hodnoty hash pro zadané záložky.
Syntaxe
STDMETHOD (Hash )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmarks,
const DBBKMARK* rgcbBookmarks[],
const BYTE* rgpBookmarks[],
DBHASHVALUE rgHashValues[],
DBROWSTATUS rgBookmarkStatus[]);
Parametry
hReserved
[v] Odpovídá parametru hChapter pro IRowsetLocate::Hash.
Další parametry naleznete v tématu IRowsetLocate::Hash v odkazech programátora OLE DB.
IRowsetLocateImpl::m_rgBookmarks
Pole záložek.
Syntaxe
CAtlArray<DBROWCOUNT> m_rgBookmarks;
Viz také
Šablony zprostředkovatele OLE DB
Architektura šablon zprostředkovatele OLE DB
IRowsetLocate:IRowsetProvider Support for Bookmarks
Bookmarks