Classe IRowsetLocateImpl
Implementa l'interfaccia OLE DB IRowsetLocate , che recupera righe arbitrarie da un set di righe.
Sintassi
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>
Parametri
T
Classe derivata da IRowsetLocateImpl
.
RowsetInterface
Classe derivata da IRowsetImpl
.
RowClass
Unità di archiviazione per .HROW
MapClass
Unità di archiviazione per tutti gli handle di riga mantenuti dal provider.
BookmarkKeyType
Tipo del segnalibro, ad esempio long o stringa. I segnalibri ordinari devono avere una lunghezza di almeno due byte. La lunghezza a byte singolo è riservata ai segnalibriDBBMK_FIRST
standard OLE DB, DBBMK_LAST
e DBBMK_INVALID
.
BookmarkType
Meccanismo di mapping per la gestione delle relazioni tra segnalibri e dati.
BookmarkMapClass
Unità di archiviazione per tutti gli handle di riga contenuti nel segnalibro.
Requisiti
Intestazione: atldb.h
Membri
Metodi di interfaccia
Nome | Descrizione |
---|---|
Confronta | Confronta due segnalibri. |
GetRowsAt | Recupera le righe che iniziano con la riga specificata da un offset da un segnalibro. |
GetRowsByBookmark | Recupera le righe che corrispondono ai segnalibri specificati. |
Hash | Restituisce i valori hash per i segnalibri specificati. |
Membri dei dati
Nome | Descrizione |
---|---|
m_rgBookmarks | Matrice di segnalibri. |
Osservazioni:
IRowsetLocateImpl
è l'implementazione dei modelli OLE DB dell'interfaccia IRowsetLocate . IRowsetLocate
viene utilizzato per recuperare righe arbitrarie da un set di righe. Un set di righe che non implementa questa interfaccia è un sequential
set di righe. Quando IRowsetLocate
è presente in un set di righe, la colonna 0 è il segnalibro per le righe. La lettura di questa colonna otterrà un valore di segnalibro che può essere utilizzato per riposizionare la stessa riga.
IRowsetLocateImpl
viene usato per implementare il supporto dei segnalibri nei provider. I segnalibri sono segnaposto (indici in un set di righe) che consentono al consumer di tornare rapidamente a una riga, consentendo l'accesso ad alta velocità ai dati. Il provider determina quali segnalibri possono identificare in modo univoco una riga. Usando IRowsetLocateImpl
i metodi, è possibile confrontare segnalibri, recuperare righe per offset, recuperare righe per segnalibro e restituire valori hash per i segnalibri.
Per supportare i segnalibri OLE DB in un set di righe, impostare l'ereditarietà del set di righe da questa classe.
Per informazioni sull'implementazione del supporto dei segnalibri, vedere Supporto del provider per i segnalibri nella Guida e nei segnalibri del programmatore di Visual C++ nella Guida per programmatori OLE DB in Platform SDK.
IRowsetLocateImpl::Compare
Confronta due segnalibri.
Sintassi
STDMETHOD (Compare )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmark1,
const BYTE* pBookmark1,
DBBKMARK cbBookmark2,
const BYTE* pBookmark2,
DBCOMPARE* pComparison);
Parametri
Vedere IRowsetLocate::Compare nella guida di riferimento per programmatori OLE DB.
Osservazioni:
Uno dei segnalibri può essere un segnalibro standard definito da OLE DB standard (DBBMK_FIRST
, DBBMK_LAST
o DBBMK_INVALID
). Il valore restituito in pComparison
indica la relazione tra i due segnalibri:
DBCOMPARE_LT (
cbBookmark1
è precedentecbBookmark2
a .)DBCOMPARE_EQ (
cbBookmark1
è uguale acbBookmark2
.)DBCOMPARE_GT (
cbBookmark1
è dopocbBookmark2
.)DBCOMPARE_NE (i segnalibri sono uguali e non ordinati).
DBCOMPARE_NOTCOMPARABLE (Impossibile confrontare i segnalibri).
IRowsetLocateImpl::GetRowsAt
Recupera le righe che iniziano con la riga specificata da un offset da un segnalibro.
Sintassi
STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
HCHAPTER hReserved2,
DBBKMARK cbBookmark,
const BYTE* pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Parametri
Vedere IRowsetLocate::GetRowsAt nella guida di riferimento per programmatori OLE DB.
Osservazioni:
Per recuperare dalla posizione del cursore, usare invece IRowset::GetRowsAt.
IRowsetLocateImpl::GetRowsAt
non modifica la posizione del cursore.
IRowsetLocateImpl::GetRowsByBookmark
Recupera una o più righe corrispondenti ai segnalibri specificati.
Sintassi
STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE* rgpBookmarks,
HROW rghRows[],
DBROWSTATUS* rgRowStatus[]);
Parametri
hReserved
[in] Corrisponde al parametro hChapter a IRowsetLocate::GetRowsByBookmark.
Per altri parametri, vedere IRowsetLocate::GetRowsByBookmark nella guida di riferimento per programmatori OLE DB.
Osservazioni:
Il segnalibro può essere un valore definito o un segnalibro standard OLE DB (DBBMK_FIRST
o DBBMK_LAST
). Non modifica la posizione del cursore.
IRowsetLocateImpl::Hash
Restituisce i valori hash per i segnalibri specificati.
Sintassi
STDMETHOD (Hash )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmarks,
const DBBKMARK* rgcbBookmarks[],
const BYTE* rgpBookmarks[],
DBHASHVALUE rgHashValues[],
DBROWSTATUS rgBookmarkStatus[]);
Parametri
hReserved
[in] Corrisponde al parametro hChapter a IRowsetLocate::Hash.
Per altri parametri, vedere IRowsetLocate::Hash nella guida di riferimento per programmatori OLE DB.
IRowsetLocateImpl::m_rgBookmarks
Matrice di segnalibri.
Sintassi
CAtlArray<DBROWCOUNT> m_rgBookmarks;
Vedi anche
Modelli di provider OLE DB
Architettura dei modelli di provider OLE DB
Supporto del provider IRowsetLocate:IRowsetper i segnalibri
Bookmarks