Classe IRowsetLocateImpl
Implementa a interface IRowsetLocate do OLE DB, que busca linhas arbitrárias de um conjunto de linhas.
Sintaxe
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
Uma classe derivada de IRowsetLocateImpl
.
RowsetInterface
Uma classe derivada de IRowsetImpl
.
RowClass
A unidade de armazenamento do HROW
.
MapClass
A unidade de armazenamento para todos os identificadores de linha mantidos pelo provedor.
BookmarkKeyType
O tipo do indicador, como um LONG ou uma cadeia de caracteres. Indicadores comuns precisam ter um comprimento de pelo menos dois bytes. (O comprimento de byte único é reservado para os indicadores padrãoDBBMK_FIRST
OLE DB, DBBMK_LAST
e DBBMK_INVALID
.)
BookmarkType
O mecanismo de mapeamento para manter relações de indicadores para dados.
BookmarkMapClass
A unidade de armazenamento para todos os identificadores de linha mantidos pelo indicador.
Requisitos
Cabeçalho: atldb.h
Membros
Métodos de interface
Nome | Descrição |
---|---|
Comparar | Compara dois indicadores. |
GetRowsAt | Busca linhas, iniciando com a linha especificada por um deslocamento de um indicador. |
GetRowsByBookmark | Busca as linhas que correspondem aos indicadores especificados. |
Hash | Retorna valores de hash para os indicadores especificados. |
Membros de dados
Nome | Descrição |
---|---|
m_rgBookmarks | Uma matriz de indicadores. |
Comentários
IRowsetLocateImpl
é a implementação de Modelos OLE DB da interface IRowsetLocate. IRowsetLocate
é usado para buscar linhas arbitrárias de um conjunto de linhas. Um conjunto de linhas que não implementa essa interface é um conjunto de linhas sequential
. Quando IRowsetLocate
estiver presente em um conjunto de linhas, a coluna 0 será o indicador para as linhas; a leitura dessa coluna obterá um valor de indicador que poderá ser usado para reposicionar para a mesma linha.
IRowsetLocateImpl
é usado para implementar o suporte a indicadores em provedores. Os indicadores são espaços reservados (índices em um conjunto de linhas) que permitem que o consumidor retorne rapidamente a uma linha, permitindo acesso de alta velocidade aos dados. O provedor determina quais indicadores podem identificar exclusivamente uma linha. Usando métodos IRowsetLocateImpl
, você pode comparar indicadores, buscar linhas por deslocamento, buscar linhas por indicador e retornar valores de hash para indicadores.
Para dar suporte a indicadores OLE DB em um conjunto de linhas, faça o conjunto de linhas herdar dessa classe.
Para obter informações sobre como implementar o suporte a indicadores, confira Suporte do provedor a indicadores no Guia do Programador do Visual C++ e Indicadores na Referência de programador do OLE DB no SDK da Plataforma.
IRowsetLocateImpl::Compare
Compara dois indicadores.
Sintaxe
STDMETHOD (Compare )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmark1,
const BYTE* pBookmark1,
DBBKMARK cbBookmark2,
const BYTE* pBookmark2,
DBCOMPARE* pComparison);
Parâmetros
Confira IRowsetLocate::Compare na Referência do programador OLE DB.
Comentários
Qualquer um dos indicadores pode ser um indicador padrão definido pelo OLE DB (DBBMK_FIRST
, DBBMK_LAST
ou DBBMK_INVALID
). O valor retornado em pComparison
indica a relação entre os dois indicadores:
DBCOMPARE_LT (
cbBookmark1
é antes decbBookmark2
.)DBCOMPARE_EQ (
cbBookmark1
é igual acbBookmark2
.)DBCOMPARE_LT (
cbBookmark1
é apóscbBookmark2
.)DBCOMPARE_NE (os indicadores são iguais e não são ordenados.)
DBCOMPARE_NOTCOMPARABLE (os indicadores não podem ser comparados.)
IRowsetLocateImpl::GetRowsAt
Busca linhas, iniciando com a linha especificada por um deslocamento de um indicador.
Sintaxe
STDMETHOD (GetRowsAt )(HWATCHREGION /* hReserved1 */,
HCHAPTER hReserved2,
DBBKMARK cbBookmark,
const BYTE* pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Parâmetros
Confira IRowsetLocate::GetRowsAt na Referência do programador OLE DB.
Comentários
Para buscar a partir da posição do cursor, use IRowset::GetRowsAt.
IRowsetLocateImpl::GetRowsAt
não altera a posição do cursor.
IRowsetLocateImpl::GetRowsByBookmark
Busca uma ou mais linhas que correspondem aos indicadores especificados.
Sintaxe
STDMETHOD (GetRowsByBookmark )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE* rgpBookmarks,
HROW rghRows[],
DBROWSTATUS* rgRowStatus[]);
Parâmetros
hReserved
[in] Corresponde ao parâmetro hChapter para IRowsetLocate::GetRowsByBookmark.
Para outros parâmetros, confira IRowsetLocate::GetRowsByBookmark na Referência do Programador OLE DB.
Comentários
O indicador pode ser um valor que você define ou um indicador padrão OLE DB (DBBMK_FIRST
ou DBBMK_LAST
). Não altera a posição do cursor.
IRowsetLocateImpl::Hash
Retorna valores de hash para os indicadores especificados.
Sintaxe
STDMETHOD (Hash )(HCHAPTER /* hReserved */,
DBBKMARK cbBookmarks,
const DBBKMARK* rgcbBookmarks[],
const BYTE* rgpBookmarks[],
DBHASHVALUE rgHashValues[],
DBROWSTATUS rgBookmarkStatus[]);
Parâmetros
hReserved
[in] Corresponde ao parâmetro hChapter para IRowsetLocate::Hash.
Para outros parâmetros, confira IRowsetLocate::Hash na Referência do Programador OLE DB.
IRowsetLocateImpl::m_rgBookmarks
Uma matriz de indicadores.
Sintaxe
CAtlArray<DBROWCOUNT> m_rgBookmarks;
Confira também
Modelos de Provedor OLE DB
Arquitetura de modelo do provedor do OLE DB
IRowsetLocate:IRowsetSuporte do provedor para indicadores
Indicadores