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 HROW
s 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 lOffset
cRows 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