IRowsetLocateImpl (Clase)
Implementa la interfaz IRowsetLocate de OLE DB, que captura filas arbitrarias de un conjunto de filas.
Sintaxis
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>
Parámetros
T
Una clase derivada de IRowsetLocateImpl
.
RowsetInterface
Una clase derivada de IRowsetImpl
.
RowClass
Unidad de almacenamiento de HROW
.
MapClass
La unidad de almacenamiento para todos los identificadores de fila que mantiene el proveedor.
BookmarkKeyType
Tipo del marcador, como LONG o una cadena. Los marcadores normales deben tener una longitud de al menos dos bytes. (La longitud de un byte está reservada para los marcadores estándar de OLE DB DBBMK_FIRST
, DBBMK_LAST
y DBBMK_INVALID
).
BookmarkType
Mecanismo de asignación para mantener relaciones de marcador a datos.
BookmarkMapClass
Unidad de almacenamiento para todos los identificadores de fila mantenidos por el marcador.
Requisitos
Encabezado: atldb.h
Miembros
Métodos de interfaz
Nombre | Descripción |
---|---|
Comparar | Compara dos marcadores. |
GetRowsAt | Captura filas a partir de la fila especificada por un desplazamiento del marcador. |
GetRowsByBookmark | Captura las filas que coinciden con los marcadores especificados. |
Hash | Devuelve valores hash para los marcadores especificados. |
Miembros de datos
Nombre | Descripción |
---|---|
m_rgBookmarks | Matriz de marcadores. |
Comentarios
IRowsetLocateImpl
es la implementación de plantillas OLE DB de la interfaz IRowsetLocate. IRowsetLocate
se usa para capturar filas arbitrarias de un conjunto de filas. Un conjunto de filas que no implementa esta interfaz es un conjunto de filas sequential
. Cuando IRowsetLocate
está presente en un conjunto de filas, la columna 0 es el marcador de las filas; al leer esta columna se obtiene un valor de marcador que se puede usar para cambiar la posición a la misma fila.
IRowsetLocateImpl
se usa para implementar la compatibilidad con marcadores en proveedores. Los marcadores son marcadores de posición (índices en un conjunto de filas) que permiten al consumidor volver rápidamente a una fila, lo que permite el acceso de alta velocidad a los datos. El proveedor determina qué marcadores pueden identificar de forma exclusiva una fila. Mediante métodos IRowsetLocateImpl
, puede comparar marcadores, capturar filas por desplazamiento, capturar filas por marcador y devolver valores hash para marcadores.
Para admitir marcadores OLE DB en un conjunto de filas, haga que el conjunto de filas herede de esta clase.
Para obtener información sobre la implementación de la compatibilidad con marcadores, vea Compatibilidad del proveedor con los marcadores en la Guía del programador de Visual C++ y Marcadores en la Referencia del programador de OLE DB en el SDK de Platform.
IRowsetLocateImpl::Compare
Compara dos marcadores.
Sintaxis
STDMETHOD (Compare )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmark1,
const BYTE* pBookmark1,
DBBKMARK cbBookmark2,
const BYTE* pBookmark2,
DBCOMPARE* pComparison);
Parámetros
Vea IRowsetLocate::Compare en la Referencia del programador de OLE DB.
Comentarios
Cualquiera de los marcadores puede ser un marcador estándar definido por OLE DB (DBBMK_FIRST
, DBBMK_LAST
o DBBMK_INVALID
). El valor devuelto en pComparison
indica la relación entre los dos marcadores:
DBCOMPARE_LT (
cbBookmark1
es anterior acbBookmark2
).DBCOMPARE_EQ (
cbBookmark1
es igual acbBookmark2
).DBCOMPARE_GT (
cbBookmark1
es posterior acbBookmark2
).DBCOMPARE_NE (los marcadores son iguales y no están ordenados).
DBCOMPARE_NOTCOMPARABLE (no se pueden comparar los marcadores).
IRowsetLocateImpl::GetRowsAt
Captura filas a partir de la fila especificada por un desplazamiento del marcador.
Sintaxis
STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
HCHAPTER hReserved2,
DBBKMARK cbBookmark,
const BYTE* pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Parámetros
Vea IRowsetLocate::GetRowsAt en la Referencia del programador de OLE DB.
Comentarios
Para capturar desde la posición del cursor, use IRowset::GetRowsAt.
IRowsetLocateImpl::GetRowsAt
no cambia la posición del cursor.
IRowsetLocateImpl::GetRowsByBookmark
Captura una o varias filas que coinciden con los marcadores especificados.
Sintaxis
STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE* rgpBookmarks,
HROW rghRows[],
DBROWSTATUS* rgRowStatus[]);
Parámetros
hReserved
[in] Corresponde al parámetro hChapter a IRowsetLocate::GetRowsByBookmark.
Para ver otros parámetros, vea IRowsetLocate::GetRowsByBookmark en la Referencia del programador de OLE DB.
Comentarios
El marcador puede ser un valor que defina o un marcador estándar de OLE DB (DBBMK_FIRST
o DBBMK_LAST
). No cambia la posición del cursor.
IRowsetLocateImpl::Hash
Devuelve valores hash para los marcadores especificados.
Sintaxis
STDMETHOD (Hash )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmarks,
const DBBKMARK* rgcbBookmarks[],
const BYTE* rgpBookmarks[],
DBHASHVALUE rgHashValues[],
DBROWSTATUS rgBookmarkStatus[]);
Parámetros
hReserved
[in] Corresponde al parámetro hChapter a IRowsetLocate::Hash.
Para ver otros parámetros, vea IRowsetLocate::Hash en la Referencia del programador de OLE DB.
IRowsetLocateImpl::m_rgBookmarks
Matriz de marcadores.
Sintaxis
CAtlArray<DBROWCOUNT> m_rgBookmarks;
Consulte también
Plantillas de proveedores OLE DB
Arquitectura de plantillas de proveedores OLE DB
IRowsetLocate:IRowsetCompatibilidad del proveedor para marcadores
Marcadores