Partager via


CBulkRowset, classe

Récupère et manipule des lignes pour travailler sur des données en bloc en récupérant plusieurs handles de ligne avec un seul appel.

Syntaxe

template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>

Paramètres

TAccessor
Classe d’accesseur.

Spécifications

En-tête : atldbcli.h

Membres

Méthodes

Nom Description
AddRefRows Incrémente le nombre de références.
CBulkRowset Constructeur.
MoveFirst Récupère la première ligne de données, effectuant une nouvelle extraction en bloc si nécessaire.
MoveLast Passe à la dernière ligne.
MoveNext Récupère la ligne de données suivante.
MovePrev Se déplace vers la ligne précédente.
MoveToBookmark Récupère la ligne marquée par un signet ou la ligne à un décalage spécifié de ce signet.
MoveToRatio Récupère les lignes à partir d’une position fractionnaire dans l’ensemble de lignes.
ReleaseRows Définit la ligne actuelle (m_nCurrentRow) sur zéro et libère toutes les lignes.
SetRows Définit le nombre de handles de ligne à récupérer par un appel.

Exemple

L’exemple suivant illustre l’utilisation de la CBulkRowset classe.

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

Appelle IRowset ::AddRefRows pour incrémenter le nombre de références pour toutes les lignes actuellement récupérées à partir de l’ensemble de lignes en bloc.

Syntaxe

HRESULT AddRefRows() throw();

Valeur de retour

HRESULT standard.

CBulkRowset::CBulkRowset

Crée un CBulkRowset objet et définit le nombre de lignes par défaut sur 10.

Syntaxe

CBulkRowset();

CBulkRowset::MoveFirst

Récupère la première ligne de données.

Syntaxe

HRESULT MoveFirst() throw();

Valeur de retour

HRESULT standard.

CBulkRowset::MoveLast

Passe à la dernière ligne.

Syntaxe

HRESULT MoveLast() throw();

Valeur de retour

HRESULT standard.

CBulkRowset::MoveNext

Récupère la ligne de données suivante.

Syntaxe

HRESULT MoveNext() throw();

Valeur de retour

HRESULT standard. Lorsque la fin de l’ensemble de lignes a été atteinte, retourne DB_S_ENDOFROWSET.

CBulkRowset::MovePrev

Se déplace vers la ligne précédente.

Syntaxe

HRESULT MovePrev() throw();

Valeur de retour

HRESULT standard.

CBulkRowset::MoveToBookmark

Récupère la ligne marquée par un signet ou la ligne à un décalage spécifié (lSkip) de ce signet.

Syntaxe

HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
   DBCOUNTITEM lSkip = 0) throw();

Paramètres

bookmark
[in] Signet marquant l’emplacement à partir duquel vous souhaitez extraire des données.

lSkip
[in] Nombre de lignes du signet à la ligne cible. Si lSkip est égal à zéro, la première ligne extraite est la ligne avec signet. Si lSkip est 1, la première ligne extraite est la ligne après la ligne de signet. Si lSkip est -1, la première ligne extraite est la ligne avant la ligne de signet.

Valeur de retour

Consultez IRowset ::GetData dans la référence du programmeur OLE DB.

CBulkRowset::MoveToRatio

Récupère les lignes à partir d’une position fractionnaire dans l’ensemble de lignes.

Syntaxe

HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
   DBCOUNTITEM nDenominator)throw();

Paramètres

nNumerator
[in] Numérateur utilisé pour déterminer la position fractionnaire à partir de laquelle extraire des données.

nDenominator
[in] Dénominateur utilisé pour déterminer la position fractionnelle à partir de laquelle extraire des données.

Valeur de retour

HRESULT standard.

Notes

MoveToRatio récupère les lignes à peu près en fonction de la formule suivante :

(nNumerator * RowsetSize ) / nDenominator

RowsetSize est la taille de l’ensemble de lignes, mesurée en lignes. La précision de cette formule dépend du fournisseur spécifique. Pour plus d’informations, consultez IRowsetScroll ::GetRowsAtRatio dans la référence du programmeur OLE DB.

CBulkRowset::ReleaseRows

Appelle IRowset ::ReleaseRows pour décrémenter le nombre de références pour toutes les lignes actuellement récupérées à partir de l’ensemble de lignes en bloc.

Syntaxe

HRESULT ReleaseRows() throw();

Valeur de retour

HRESULT standard.

CBulkRowset::SetRows

Définit le nombre de handles de ligne récupérés par chaque appel.

Syntaxe

void SetRows(DBROWCOUNT nRows) throw();

Paramètres

nRows
[in] Nouvelle taille de l’ensemble de lignes (nombre de lignes).

Notes

Si vous appelez cette fonction, elle doit être avant l’ouverture de l’ensemble de lignes.

Voir aussi

Modèles du consommateur OLE DB
Référence des modèles du consommateur OLE DB