Sdílet prostřednictvím


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_LASTDBBMK_FIRSTOLE 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_LASTnebo DBBMK_INVALID). Hodnota vrácená v pComparison indikuje vztah mezi těmito dvěma záložkami:

  • DBCOMPARE_LT (cbBookmark1 je před cbBookmark2.)

  • DBCOMPARE_EQ (cbBookmark1 je rovno cbBookmark2.)

  • DBCOMPARE_GT (cbBookmark1 je za cbBookmark2.)

  • 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