Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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