IRowsetLocateImpl-Klasse
Implementiert die OLE DB IRowsetLocate-Schnittstelle , die beliebige Zeilen aus einem Rowset abruft.
Syntax
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>
Parameter
T
Eine von IRowsetLocateImpl
.
RowsetInterface
Eine von IRowsetImpl
.
RowClass
Die Speichereinheit für die HROW
.
MapClass
Die Speichereinheit für alle Zeilenhandles, die vom Anbieter gehalten werden.
BookmarkKeyType
Der Typ der Textmarke, z. B. long oder eine Zeichenfolge. Normale Lesezeichen müssen mindestens zwei Bytes lang sein. (Single-Byte length is reserved for the OLE DB standard bookmarksDBBMK_FIRST
, DBBMK_LAST
, and DBBMK_INVALID
.)
BookmarkType
Der Zuordnungsmechanismus für die Aufrechterhaltung von Textmarken-zu-Daten-Beziehungen.
BookmarkMapClass
Die Speichereinheit für alle Zeilenziehpunkte, die von der Textmarke gehalten werden.
Anforderungen
Header: „atldb.h“
Member
Schnittstellenmethoden
Name | Beschreibung |
---|---|
Vergleichen | Vergleicht zwei Lesezeichen. |
GetRowsAt | Ruft Zeilen ab, die mit der Zeile beginnen, die durch einen Offset von einer Textmarke angegeben wurde. |
GetRowsByBookmark | Ruft die Zeilen ab, die den angegebenen Textmarken entsprechen. |
Hash | Gibt Hashwerte für die angegebenen Lesezeichen zurück. |
Datenelemente
Name | Beschreibung |
---|---|
m_rgBookmarks | Ein Array von Textmarken. |
Hinweise
IRowsetLocateImpl
ist die OLE DB-Vorlagenimplementierung der IRowsetLocate-Schnittstelle . IRowsetLocate
wird verwendet, um beliebige Zeilen aus einem Rowset abzurufen. Ein Rowset, das diese Schnittstelle nicht implementiert, ist ein sequential
Rowset. Wenn IRowsetLocate
sie in einem Rowset vorhanden ist, ist Spalte 0 die Textmarke für die Zeilen. Beim Lesen dieser Spalte wird ein Textmarkenwert abgerufen, der zum Ändern der Position in derselben Zeile verwendet werden kann.
IRowsetLocateImpl
wird verwendet, um die Textmarkenunterstützung in Anbietern zu implementieren. Textmarken sind Platzhalter (Indizes für ein Rowset), mit denen der Verbraucher schnell zu einer Zeile zurückkehren kann, sodass der Schnellzugriff auf Daten ermöglicht wird. Der Anbieter bestimmt, welche Lesezeichen eine Zeile eindeutig identifizieren können. Mithilfe von IRowsetLocateImpl
Methoden können Sie Lesezeichen vergleichen, Zeilen nach Offset abrufen, Zeilen nach Textmarke abrufen und Hashwerte für Textmarken zurückgeben.
Um OLE DB-Lesezeichen in einem Rowset zu unterstützen, erben Sie das Rowset von dieser Klasse.
Informationen zur Implementierung der Textmarkenunterstützung finden Sie unter Anbieterunterstützung für Lesezeichen im Visual C++-Programmierhandbuch und textmarken in der OLE DB-Programmierreferenz im Platform SDK.
IRowsetLocateImpl::Compare
Vergleicht zwei Lesezeichen.
Syntax
STDMETHOD (Compare )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmark1,
const BYTE* pBookmark1,
DBBKMARK cbBookmark2,
const BYTE* pBookmark2,
DBCOMPARE* pComparison);
Parameter
Siehe "IRowsetLocate::Compare " in der OLE DB-Programmierreferenz.
Hinweise
Eine der Textmarken kann ein standardmäßiges OLE DB-definiertes Standardlesezeichen (DBBMK_FIRST
, DBBMK_LAST
oder DBBMK_INVALID
) sein. Der zurückgegebene pComparison
Wert gibt die Beziehung zwischen den beiden Textmarken an:
DBCOMPARE_LT (
cbBookmark1
ist vorcbBookmark2
.)DBCOMPARE_EQ (
cbBookmark1
ist gleichcbBookmark2
.)DBCOMPARE_GT (
cbBookmark1
ist nachcbBookmark2
.)DBCOMPARE_NE (Die Textmarken sind gleich und nicht sortiert.)
DBCOMPARE_NOTCOMPARABLE (Die Lesezeichen können nicht verglichen werden.)
IRowsetLocateImpl::GetRowsAt
Ruft Zeilen ab, die mit der Zeile beginnen, die durch einen Offset von einer Textmarke angegeben wurde.
Syntax
STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
HCHAPTER hReserved2,
DBBKMARK cbBookmark,
const BYTE* pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Parameter
Siehe IRowsetLocate::GetRowsAt in der OLE DB-Programmierreferenz.
Hinweise
Um stattdessen von der Cursorposition abzurufen, verwenden Sie "IRowset::GetRowsAt".
IRowsetLocateImpl::GetRowsAt
ändert die Cursorposition nicht.
IRowsetLocateImpl::GetRowsByBookmark
Ruft eine oder mehrere Zeilen ab, die den angegebenen Textmarken entsprechen.
Syntax
STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE* rgpBookmarks,
HROW rghRows[],
DBROWSTATUS* rgRowStatus[]);
Parameter
hReserved
[in] Entspricht dem hChapter-Parameter " IRowsetLocate::GetRowsByBookmark".
Weitere Parameter finden Sie unter "IRowsetLocate::GetRowsByBookmark " in der OLE DB-Programmierreferenz.
Hinweise
Die Textmarke kann ein Wert sein, den Sie definieren, oder ein OLE DB-Standardlesezeichen (DBBMK_FIRST
oder DBBMK_LAST
). Ändert die Cursorposition nicht.
IRowsetLocateImpl::Hash
Gibt Hashwerte für die angegebenen Lesezeichen zurück.
Syntax
STDMETHOD (Hash )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmarks,
const DBBKMARK* rgcbBookmarks[],
const BYTE* rgpBookmarks[],
DBHASHVALUE rgHashValues[],
DBROWSTATUS rgBookmarkStatus[]);
Parameter
hReserved
[in] Entspricht dem hChapter-Parameter " IRowsetLocate::Hash".
Weitere Parameter finden Sie unter "IRowsetLocate::Hash " in der OLE DB-Programmierreferenz.
IRowsetLocateImpl::m_rgBookmarks
Ein Array von Textmarken.
Syntax
CAtlArray<DBROWCOUNT> m_rgBookmarks;
Siehe auch
OLE DB-Anbietervorlagen
Architektur von OLE DB-Anbietervorlagen
IRowsetLocate:IRowset-Anbieterunterstützungfür Lesezeichen
Bookmarks