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.
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