Compartilhar via


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