Partilhar via


Classe IRowsetImpl

Fornece uma implementação da interface IRowset.

Sintaxe

template <
   class T,
   class RowsetInterface,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <
      RowClass::KeyType,
      RowClass*>>
class ATL_NO_VTABLE IRowsetImpl : public RowsetInterface

Parâmetros

T
Sua classe, derivada de IRowsetImpl.

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.

Requisitos

Cabeçalho: atldb.h

Membros

Métodos

Nome Descrição
AddRefRows Adiciona uma contagem de referência em um identificador de linha existente.
CreateRow Chamado por GetNextRows para alocar um novo HROW. Não é chamado diretamente pelo usuário.
GetData Recupera dados da cópia do conjunto de linhas da linha.
GetDBStatus Retorna o status do campo especificado.
GetNextRows Busca linhas sequencialmente, lembrando da posição anterior.
IRowsetImpl O construtor . Não é chamado diretamente pelo usuário.
RefRows Chamado por AddRefRows e ReleaseRows. Não é chamado diretamente pelo usuário.
ReleaseRows Libera linhas.
RestartPosition Reposiciona a próxima posição de busca para a posição inicial; ou seja, a posição quando o conjunto de linhas foi criado.
SetDBStatus Define os sinalizadores de status para o campo especificado.

Membros de dados

Nome Descrição
m_bCanFetchBack Indica se um provedor dá suporte à busca com versões anteriores.
m_bCanScrollBack Indica se um provedor pode ter sua rolagem de cursor para trás.
m_bReset Indica se um provedor redefiniu sua posição de cursor. Isso tem um significado especial ao rolar para trás ou buscar para trás em GetNextRows.
m_iRowset Um índice para o conjunto de linhas que representa o cursor.
m_rgRowHandles Uma lista de identificadores de linha.

Comentários

IRowset é a interface do conjunto de linhas base.

IRowsetImpl::AddRefRows

Adiciona uma contagem de referência em um identificador de linha existente.

Sintaxe

STDMETHOD(AddRefRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Parâmetros

Consulte IRowset::AddRefRows na referência do programador do OLE DB.

IRowsetImpl::CreateRow

Um método auxiliar chamado por GetNextRows para alocar um novo HROW.

Sintaxe

HRESULT CreateRow(DBROWOFFSET lRowsOffset,
   DBCOUNTITEM& cRowsObtained,
   HROW* rgRows);

Parâmetros

lRowsOffset
Posição do cursor da linha que está sendo criada.

cRowsObtained
Uma referência passada de volta para o usuário indicando o número de linhas criadas.

rgRows
Uma matriz de HROWs retornada ao chamador com os identificadores de linha recém-criados.

Comentários

Se a linha existir, esse método chamará AddRefRows e retornará. Caso contrário, ele aloca uma nova instância da variável de modelo RowClass e a adiciona a m_rgRowHandles.

IRowsetImpl::GetData

Recupera dados da cópia do conjunto de linhas da linha.

Sintaxe

STDMETHOD(GetData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pDstData);

Parâmetros

Consulte IRowset::GetData na Referência do programador OLE DB.

Alguns parâmetros correspondem aos parâmetros da Referência de programador do OLE DB de nomes diferentes, que são descritos em IRowset::GetData:

Parâmetros de modelo do OLE DB Parâmetros da Referência de programador do OLE DB
pDstData pData

Comentários

Também lida com a conversão de dados usando a DLL de conversão de dados do OLE DB.

IRowsetImpl::GetDBStatus

Retorna os sinalizadores de status DBSTATUS para o campo especificado.

Sintaxe

virtual DBSTATUS GetDBStatus(RowClass* currentRow,
   ATLCOLUMNINFO* columnNames);

Parâmetros

currentRow
[in] A linha atual.

columnNames
[in] A coluna para o qual o status está sendo solicitada.

Valor de retorno

Os sinalizadores DBSTATUS para a coluna.

IRowsetImpl::GetNextRows

Busca linhas sequencialmente, lembrando da posição anterior.

Sintaxe

STDMETHOD(GetNextRows )(HCHAPTER hReserved,
   DBROWOFFSET lRowsOffset,
   DBROWCOUNT cRows,
   DBCOUNTITEM* pcRowsObtained,
   HROW** prghRows);

Parâmetros

Consulte IRowset::GetNextRows na referência do programador do OLE DB.

IRowsetImpl::IRowsetImpl

O construtor .

Sintaxe

IRowsetImpl();

Comentários

Geralmente, não é necessário chamar diretamente este método.

IRowsetImpl::RefRows

Chamado por AddRefRows e ReleaseRows para incrementar ou liberar uma contagem de referência para um identificador de linha existente.

Sintaxe

HRESULT RefRows(DBCOUNTITEM cRows,
   const HROWrghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[],
   BOOL bAdd);

Parâmetros

Consulte IRowset::AddRefRows na referência do programador do OLE DB.

Valor de retorno

Um valor HRESULT padrão.

IRowsetImpl::ReleaseRows

Libera linhas.

Sintaxe

STDMETHOD(ReleaseRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBROWOPTIONS rgRowOptions[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Parâmetros

Consulte IRowset::ReleaseRows na referência do programador do OLE DB.

IRowsetImpl::RestartPosition

Reposiciona a próxima posição de busca para a posição inicial; ou seja, a posição quando o conjunto de linhas foi criado.

Sintaxe

STDMETHOD(RestartPosition )(HCHAPTER /* hReserved */);

Parâmetros

Consulte IRowset::RestartPosition na referência do programador do OLE DB.

Comentários

A posição do conjunto de linhas é indefinida até GetNextRow ser chamado. Você pode mover para trás em um rowet chamando RestartPosition e buscando ou rolando para trás.

IRowsetImpl::SetDBStatus

Define os sinalizadores de status DBSTATUS para o campo especificado.

Sintaxe

virtual HRESULT SetDBStatus(DBSTATUS* statusFlags,
   RowClass* currentRow,
   ATLCOLUMNINFO* columnInfo);

Parâmetros

statusFlags
Os sinalizadores DBSTATUS para definir para a coluna.

currentRow
A linha atual.

columnInfo
A coluna para o qual o status está sendo solicitado.

Valor de retorno

Um valor HRESULT padrão.

Comentários

O provedor substitui essa função para oferecer processamento especial para DBSTATUS_S_ISNULL e DBSTATUS_S_DEFAULT.

IRowsetImpl::m_bCanFetchBack

Indica se um provedor dá suporte à busca com versões anteriores.

Sintaxe

unsigned m_bCanFetchBack:1;

Comentários

Vinculado à propriedade DBPROP_CANFETCHBACKWARDS no grupo DBPROPSET_ROWSET. O provedor precisa permitir DBPROP_CANFETCHBACKWARDS para m_bCanFetchBackwards ser true.

IRowsetImpl::m_bCanScrollBack

Indica se um provedor pode ter sua rolagem de cursor para trás.

Sintaxe

unsigned  m_bCanScrollBack:1;

Comentários

Vinculado à propriedade DBPROP_CANSCROLLBACKWARDS no grupo DBPROPSET_ROWSET. O provedor precisa permitir DBPROP_CANSCROLLBACKWARDS para m_bCanFetchBackwards ser true.

IRowsetImpl::m_bReset

Um sinalizador de bit usado para determinar se a posição do cursor é definida no conjunto de linhas.

Sintaxe

unsigned m_bReset:1;

Comentários

Se o consumidor chamar GetNextRows com um lOffsetcRows ou negativo e m_bReset for verdadeiro, GetNextRows passará para o final do conjunto de linhas. Se m_bReset for falso, o consumidor receberá um código de erro em conformidade com a especificação do OLE DB. O sinalizador m_bReset é definido como true quando o conjunto de linhas é criado pela primeira vez e quando o consumidor chama IRowsetImpl::RestartPosition. Ele é definido como false quando você chama GetNextRows.

IRowsetImpl::m_iRowset

Um índice para o conjunto de linhas que representa o cursor.

Sintaxe

DBROWOFFSET m_iRowset;

IRowsetImpl::m_rgRowHandles

Um mapa de identificadores de linha atualmente contidos pelo provedor em resposta a GetNextRows.

Sintaxe

MapClass m_rgRowHandles;

Comentários

Os identificadores de linha são removidos chamando ReleaseRows. Confira Visão geral de IRowsetImpl para obter a definição de MapClass.

Confira também

Modelos de Provedor OLE DB
Arquitetura de modelo do provedor do OLE DB
Classe CSimpleRow