Classe CBulkRowset
Busca e manipula linhas para trabalhar em dados em massa recuperando vários identificadores de linha com uma única chamada.
Sintaxe
template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>
Parâmetros
TAccessor
Uma classe de acessador.
Requisitos
Cabeçalho: atldbcli.h
Membros
Métodos
Nome | Descrição |
---|---|
AddRefRows | Incrementa a contagem de referência. |
CBulkRowset | Construtor. |
MoveFirst | Recupera a primeira linha de dados, executando uma nova busca em massa, se necessário. |
MoveLast | Move para a última linha. |
MoveNext | Recupera a próxima linha de dados. |
MovePrev | Move para a linha anterior. |
MoveToBookmark | Efetua fetch da linha marcada por um indicador ou a linha em um deslocamento especificado desse indicador. |
MoveToRatio | Efetua fetch das linhas iniciando de uma posição fracionária no conjunto de linhas. |
ReleaseRows | Define a linha atual (m_nCurrentRow ) como zero e libera todas as linhas. |
SetRows | Define o número de identificadores de linha a serem recuperados por uma chamada. |
Exemplo
O exemplo a seguir demonstra o uso da classe CBulkRowset
.
class CCustomerData
{
public:
char m_szField1[50];
BEGIN_COLUMN_MAP(CCustomerData)
COLUMN_ENTRY(1, m_szField1)
END_COLUMN_MAP()
};
void DoCBulkRowsetTest()
{
CoInitialize(NULL);
CCommand<CAccessor<CCustomerData>, CBulkRowset > cmd;
CDataSource ds;
// Open up data link dialogs to create a data source
ds.Open();
CSession session;
session.Open(ds);
// Could call SetRows() here if you want to fetch
// more than 10 HROWs at a time.
cmd.Open(session, L"Select * from customer");
cmd.MoveFirst();
// Note that the CBulkRowset by default fetched 10 HROWs at a time
// so that the MoveNext call will not have to make the GetNextRows
// call to get the second HROW because it has already been fetched
//by the MoveFirst() call above.
cmd.MoveNext();
cmd.Close();
session.Close();
ds.Close();
}
CBulkRowset::AddRefRows
Chama IRowset::AddRefRows para incrementar a contagem de referência para todas as linhas atualmente recuperadas do conjunto de linhas em massa.
Sintaxe
HRESULT AddRefRows() throw();
Valor retornado
Um valor HRESULT padrão.
CBulkRowset::CBulkRowset
Cria um novo objeto CBulkRowset
e define a contagem de linhas padrão como 10.
Sintaxe
CBulkRowset();
CBulkRowset::MoveFirst
Recupera a primeira linha de dados.
Sintaxe
HRESULT MoveFirst() throw();
Valor retornado
Um valor HRESULT padrão.
CBulkRowset::MoveLast
Move para a última linha.
Sintaxe
HRESULT MoveLast() throw();
Valor retornado
Um valor HRESULT padrão.
CBulkRowset::MoveNext
Recupera a próxima linha de dados.
Sintaxe
HRESULT MoveNext() throw();
Valor retornado
Um valor HRESULT padrão. Quando o final do conjunto de linhas for atingido, retornará DB_S_ENDOFROWSET.
CBulkRowset::MovePrev
Move para a linha anterior.
Sintaxe
HRESULT MovePrev() throw();
Valor retornado
Um valor HRESULT padrão.
CBulkRowset::MoveToBookmark
Efetua fetch da linha marcada por um indicador ou a linha em um deslocamento especificado (lSkip) desse indicador.
Sintaxe
HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
DBCOUNTITEM lSkip = 0) throw();
Parâmetros
bookmark
[in] Um indicador que marca o local do qual você deseja efetuar fetch dos dados.
lSkip
[in] A contagem de números de linhas do indicador para a linha de destino. Se lSkip for zero, a primeira linha buscada será a linha com indicador. Se lSkip for 1, a primeira linha buscada será a linha após a linha com indicador. Se lSkip for -1, a primeira linha buscada será a linha anterior à linha com indicador.
Valor de retorno
Consulte IRowset::GetData na Referência do programador OLE DB.
CBulkRowset::MoveToRatio
Efetua fetch das linhas iniciando de uma posição fracionária no conjunto de linhas.
Sintaxe
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator)throw();
Parâmetros
nNumerator
[in] O numerador usado para determinar o posicional fracionário do qual efetuar fetch dos dados.
nDenominator
[in] O denominador usado para determinar o posicional fracionário do qual efetuar fetch dos dados.
Valor de retorno
Um valor HRESULT padrão.
Comentários
MoveToRatio
busca as linhas aproximadamente de acordo com a seguinte fórmula:
(nNumerator * RowsetSize ) / nDenominator
Onde RowsetSize
é o tamanho do conjunto de linhas, medido em linhas. A precisão dessa fórmula depende do provedor específico. Para obter detalhes, consulte IRowsetScroll::GetRowsAtRatio na Referência do Programador OLE DB.
CBulkRowset::ReleaseRows
Chama IRowset::ReleaseRows para decrementar a contagem de referência para todas as linhas atualmente recuperadas do conjunto de linhas em massa.
Sintaxe
HRESULT ReleaseRows() throw();
Valor retornado
Um valor HRESULT padrão.
CBulkRowset::SetRows
Define o número de identificadores de linha recuperados por cada chamada.
Sintaxe
void SetRows(DBROWCOUNT nRows) throw();
Parâmetros
nRows
[in] O novo tamanho do conjunto de linhas (número de linhas).
Comentários
A chamada dessa função precisará estar antes que o conjunto de linhas seja aberto.
Confira também
Modelos de consumidor OLE DB
Referência de modelos de consumidor do OLE DB