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
Où 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