CRowset, classe
Encapsule un objet d’ensemble de lignes OLE DB et plusieurs interfaces associées et fournit des méthodes de manipulation pour les données d’ensemble de lignes.
Syntaxe
template <class TAccessor = CAccessorBase>
class CRowset
Paramètres
TAccessor
Classe d’accesseur. Par défaut, il s’agit de CAccessorBase
.
Spécifications
En-tête : atldbcli.h
Membres
Méthodes
Nom | Description |
---|---|
AddRefRows | Incrémente le nombre de références associé à la ligne active. |
Close | Libère les lignes et l’interface actuelle IRowset . |
Compare | Compare deux signets à l’aide de IRowsetLocate ::Compare. |
CRowset | Crée un CRowset objet et (éventuellement) l’associe à une IRowset interface fournie en tant que paramètre. |
Supprimer | Supprime les lignes de l’ensemble de lignes à l’aide de IRowsetChange :DeleteRows. |
FindNextRow | Recherche la ligne correspondante suivante après le signet spécifié. |
GetApproximatePosition | Retourne la position approximative d’une ligne correspondant à un signet. |
GetData | Récupère les données de la copie de l’ensemble de lignes de la ligne. |
GetDataHere | Récupère les données de la mémoire tampon spécifiée. |
GetOriginalData | Récupère les données les plus récemment extraites ou transmises à la source de données, en ignorant les modifications en attente. |
GetRowStatus | Retourne l’état de toutes les lignes. |
Insérer | Crée et insère une nouvelle ligne à l’aide de IRowsetChange :InsertRow. |
IsSameRow | Compare la ligne spécifiée à la ligne active. |
MoveFirst | Repositionne l’emplacement de récupération suivant à la position initiale. |
MoveLast | Passe au dernier enregistrement. |
MoveNext | Récupère des données à partir de la ligne séquentielle suivante ou d’un nombre spécifié de positions au-delà de la ligne suivante. |
MovePrev | Passe à l’enregistrement précédent. |
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 | Appelle IRowset ::ReleaseRows pour libérer le handle de ligne actuel. |
SetData | Définit des valeurs de données dans une ou plusieurs colonnes d’une ligne à l’aide de IRowsetChange :SetData. |
Annuler | Annule les modifications apportées à une ligne depuis la dernière extraction ou mise à jour. |
Update | Transmet toutes les modifications en attente apportées à la ligne actuelle depuis la dernière extraction ou mise à jour. |
UpdateAll | Transmet toutes les modifications en attente apportées à toutes les lignes depuis la dernière extraction ou mise à jour. |
Notes
Dans OLE DB, un ensemble de lignes est l’objet par lequel un programme définit et récupère des données.
Cette classe n’est pas destinée à être instanciée, mais plutôt passée en tant que paramètre de modèle à CTable
ou CCommand
(CRowset
est la valeur par défaut).
CRowset::AddRefRows
Appelle IRowset ::AddRefRows pour incrémenter (par un) le nombre de références associé au handle de ligne actuel.
Syntaxe
HRESULT AddRefRows() throw();
Valeur de retour
HRESULT standard.
Notes
Cette méthode incrémente le nombre de références pour le handle de ligne actuel. Appelez ReleaseRows pour décrémenter le nombre. Les lignes retournées par les méthodes de déplacement ont un nombre de références d’un.
CRowset::Close
Libère les lignes et l’interface IRowset actuelle.
Syntaxe
void Close() throw();
Notes
Cette méthode libère toutes les lignes actuellement dans l’ensemble de lignes.
CRowset::Compare
Compare deux signets à l’aide de IRowsetLocate ::Compare.
Syntaxe
HRESULT Compare(const CBookmarkBase& bookmark1,
const CBookmarkBase& bookmark2,
DBCOMPARE* pComparison) const throw();
Paramètres
Bookmark1
[in] Premier signet à comparer.
Bookmark2
[in] Deuxième signet à comparer.
pComparison
[out] Pointeur vers le résultat de la comparaison.
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetLocate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetLocate
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
Pour plus d’informations sur l’utilisation de signets dans les consommateurs, consultez Utilisation de signets.
CRowset::CRowset
Crée un objet CRowset
et (éventuellement) l’associe à une interface IRowset fournie en tant que paramètre.
Syntaxe
CRowset();
CRowset(IRowset* pRowset);
Paramètres
pRowset
[in] Pointeur vers une IRowset
interface à associer à cette classe.
CRowset::Delete
Appelle IRowsetChange ::D eleteRows pour supprimer la ligne actuelle de l’ensemble de lignes.
Syntaxe
HRESULT Delete() const throw();
Valeur de retour
HRESULT standard.
CRowset::FindNextRow
Recherche la ligne correspondante suivante après le signet spécifié.
Syntaxe
HRESULT FindNextRow(DBCOMPAREOP op,
BYTE* pData,
DBTYPE wType,
DBLENGTH nLength,
BYTE bPrecision,
BYTE bScale,
BOOL bSkipCurrent = TRUE,
CBookmarkBase* pBookmark = NULL) throw();
Paramètres
op
[in] Opération à utiliser pour comparer les valeurs de ligne. Pour connaître les valeurs, consultez IRowsetFind ::FindNextRow.
pData
[in] Pointeur vers la valeur à mettre en correspondance.
wType
[in] Indique le type de données de la partie valeur de la mémoire tampon. Pour plus d’informations sur les indicateurs de type, consultez Data Types in the OLE DB Programmer’s Reference in the Windows SDK.
nLength
[in] Longueur, en octets, de la structure de données du consommateur allouée pour la valeur de données. Pour plus d’informations, consultez la description des cbMaxLen
structures DBBINDING dans la référence du programmeur OLE DB.
bPrecision
[in] Précision maximale utilisée lors de l’obtention de données. Utilisé uniquement si wType est DBTYPE_NUMERIC. Pour plus d’informations, consultez Conversions impliquant DBTYPE_NUMERIC ou DBTYPE_DECIMAL dans la référence du programmeur OLE DB.
bScale
[in] Mise à l’échelle utilisée lors de l’obtention de données. Utilisé uniquement si wType est DBTYPE_NUMERIC ou DBTYPE_DECIMAL. Pour plus d’informations, consultez Conversions impliquant DBTYPE_NUMERIC ou DBTYPE_DECIMAL dans la référence du programmeur OLE DB.
bSkipCurrent
[in] Nombre de lignes du signet auquel démarrer une recherche.
pBookmark
[in] Signet pour la position à laquelle démarrer une recherche.
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetFind
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetFind
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
Pour plus d’informations sur l’utilisation de signets dans les consommateurs, consultez Utilisation de signets.
CRowset::GetApproximatePosition
Retourne la position approximative d’une ligne correspondant à un signet.
Syntaxe
HRESULT GetApproximatePosition(const CBookmarkBase* pBookmark,
DBCOUNTITEM* pPosition,
DBCOUNTITEM* pcRows) throw();
Paramètres
pBookmark
[in] Pointeur vers un signet qui identifie la ligne dont la position est à trouver. NULL si seul le nombre de lignes est requis.
pPosition
[out] Pointeur vers l’emplacement où GetApproximatePosition
retourne la position de la ligne. NULL si la position n’est pas requise.
pcRows
[out] Pointeur vers l’emplacement où GetApproximatePosition
retourne le nombre total de lignes. NULL si le nombre de lignes n’est pas obligatoire.
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetScroll
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetScroll
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
Pour plus d’informations sur l’utilisation de signets dans les consommateurs, consultez Utilisation de signets.
CRowset::GetData
Récupère les données de la copie de l’ensemble de lignes de la ligne.
Syntaxe
HRESULT GetData() throw();
HRESULT GetData(int nAccessor) throw();
Paramètres
nAccessor
[in] Numéro d’index (décalage zéro) de l’accesseur à utiliser pour accéder aux données.
Valeur de retour
HRESULT standard.
Notes
Si vous spécifiez un accesseur qui n’est pas un accesseur dans BEGIN_ACCESSOR, utilisez cette méthode pour obtenir explicitement les données en transmettant le numéro d’accesseur.
CRowset::GetDataHere
Récupère les données de la ligne actuelle et les place dans la mémoire tampon spécifiée.
Syntaxe
HRESULT GetDataHere(int nAccessor,
void* pBuffer) throw();
Paramètres
nAccessor
[in] Numéro d’index de l’accesseur à utiliser pour accéder aux données.
pBuffer
[out] Mémoire tampon dans laquelle placer les données de l’enregistrement actif.
Valeur de retour
HRESULT standard.
Notes
Pour obtenir un exemple d’utilisation de cette fonction, consultez l’exemple MultiRead.
CRowset::GetOriginalData
Appels IRowsetUpdate::GetOriginalData
pour récupérer les données les plus récemment extraites ou transmises à la source de données.
Syntaxe
HRESULT GetOriginalData() throw();
Valeur de retour
HRESULT standard.
Notes
Cette méthode récupère les données les plus récemment extraites ou transmises à la source de données ; elle ne récupère pas les valeurs en fonction des modifications en attente.
Cette méthode nécessite l’interface IRowsetUpdate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetUpdate
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
CRowset::GetRowStatus
Retourne l’état de toutes les lignes.
Syntaxe
HRESULT GetRowStatus(DBPENDINGSTATUS* pStatus) const throw();
Paramètres
pStatus
[out] Pointeur vers un emplacement où GetRowStatus
retourne la valeur d’état. Consultez DBPENDINGSTATUS dans la référence du programmeur OLE DB.
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetUpdate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetUpdate
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
CRowset::Insert
Crée et initialise une nouvelle ligne à l’aide de données à partir de l’accesseur.
Syntaxe
HRESULT Insert(int nAccessor = 0,
bool bGetHRow = false) throw();
Paramètres
nAccessor
[in] Nombre d’accesseur à utiliser pour insérer les données.
bGetHRow
[in] Indique si le handle de la ligne insérée est récupéré.
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetChange
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetChange
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
L’insertion peut échouer si une ou plusieurs colonnes ne sont pas accessibles en écriture. Modifier le mappage de votre curseur pour corriger ce problème.
Exemple
L’exemple suivant montre comment accéder à une source de données via un ensemble de lignes, puis insérer une chaîne à l’aide d’une table dans cet ensemble de lignes.
Tout d’abord, créez une classe de table en insérant un nouvel objet ATL dans votre projet. Par exemple, cliquez avec le bouton droit sur le projet dans le volet Espace de travail et sélectionnez Nouvel objet ATL. Dans la catégorie Accès aux données, sélectionnez Consommateur. Créez un objet consommateur de type Table. (Sélection La table crée un ensemble de lignes directement à partir de la table ; la sélection de la commande crée un ensemble de lignes via une commande SQL.) Sélectionnez une source de données, en spécifiant une table par le biais de laquelle accéder à cette source de données. Si vous appelez votre objet consommateur CCustomerTable, vous devez implémenter votre code d’insertion comme suit :
// Access the rowset using the wizard-generated class, CCustomerTable
CCustomerTable rs; // Your CTable-derived class
// Insert a customer
// Note that for fixed-length fields such as billing ID it isn't necessary
// to set the length
rs.m_BillingID = 5002;
rs.m_dwBillingIDStatus = DBSTATUS_S_OK;
_tcscpy_s(rs.m_ContactFirstName, sizeof(rs.m_ContactFirstName) / sizeof(TCHAR),
_T("Malcolm"));
rs.m_dwContactFirstNameLength = 7;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;
_tcscpy_s(rs.m_L_Name, sizeof(rs.m_L_Name) / sizeof(TCHAR), _T("Reynolds"));
rs.m_dwL_NameLength = 8;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;
rs.m_CustomerID = 2005;
rs.m_dwCustomerIDStatus = DBSTATUS_S_OK;
_tcscpy_s(rs.m_PostalCode, sizeof(rs.m_PostalCode) / sizeof(TCHAR),
_T("34213-4444"));
rs.m_dwPostalCodeLength = 10;
rs.m_dwPostalCodeStatus = DBSTATUS_S_OK;
HRESULT hr = rs.Insert();
if (FAILED(hr))
{
ATLTRACE(_T("Insert failed: 0x%X\n"), hr);
}
CRowset::IsSameRow
Compare la ligne spécifiée à la ligne active.
Syntaxe
HRESULT IsSameRow(HROW hRow) const throw();
Paramètres
hRow
[in] Handle de la ligne à comparer à la ligne actuelle.
Valeur de retour
HRESULT standard. S_OK indique que les lignes sont identiques. Pour d’autres valeurs, consultez IRowsetIndentity ::IsSameRow dans la référence du programmeur OLE DB dans le Kit de développement logiciel (SDK) Windows.
CRowset::MoveFirst
Déplace le curseur vers la position initiale et récupère la ligne initiale.
Syntaxe
HRESULT MoveFirst() throw();
Valeur de retour
HRESULT standard.
Notes
Appelle IRowset ::RestartPosition pour repositionner l’emplacement de récupération suivant à la position initiale (position qui était l’emplacement de récupération suivant lors de la création de l’ensemble de lignes) et récupère la ligne initiale.
CRowset::MoveLast
Déplace le curseur vers la dernière ligne.
Syntaxe
HRESULT MoveLast() throw();
Valeur de retour
HRESULT standard.
Notes
Appelle IRowset ::RestartPosition pour repositionner l’emplacement de récupération suivant à la dernière position et récupère la dernière ligne.
Cette méthode nécessite que vous mettez DBPROP_CANSCROLLBACKWARDS
à VARIANT_TRUE avant d’appeler Open
la table ou la commande contenant l’ensemble de lignes. (Pour de meilleures performances, vous pouvez également définir DBPROP_QUICKRESTART
VARIANT_TRUE.)
CRowset::MoveNext
Déplace le curseur vers l’enregistrement suivant.
Syntaxe
HRESULT MoveNext() throw();
HRESULT MoveNext(LONG lSkip,
bool bForward= true) throw();
Paramètres
lSkip
[in] Nombre de lignes à ignorer avant la récupération.
bForward
[in] true
Passez à l’enregistrement false
suivant pour avancer vers l’arrière.
Valeur de retour
HRESULT standard. Lorsque la fin de l’ensemble de lignes a été atteinte, retourne DB_S_ENDOFROWSET.
Notes
Récupère la ligne séquentielle suivante de l’objet CRowset
, en mémorisant la position précédente. Si vous le souhaitez, vous pouvez choisir d’ignorer les lignes lSkip avant ou de reculer vers l’arrière.
Cette méthode nécessite que vous définissiez les propriétés suivantes avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes :
DBPROP_CANSCROLLBACKWARDS
doit être VARIANT_TRUE si lSkip< 0DBPROP_CANFETCHBACKWARDS
doit être VARIANT_TRUE si bForward = false
Dans le cas contraire (si lSkip>= 0 et bForward = true), vous n’avez pas besoin de définir de propriétés supplémentaires.
CRowset::MovePrev
Déplace le curseur vers l’enregistrement précédent.
Syntaxe
HRESULT MovePrev() throw();
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite que vous définissiez DBPROP_CANFETCHBACKWARDS
ou DBPROP_CANSCROLLBACKWARDS
VARIANT_TRUE avant d’appeler Open
la table ou la commande contenant l’ensemble de lignes.
CRowset::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,
LONG 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
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetLocate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetLocate
la valeur VARIANT_TRUE et définir DBPROP_CANFETCHBACKWARDS
la valeur VARIANT_TRUE avant d’appeler Open
la table ou la commande contenant l’ensemble de lignes.
Pour plus d’informations sur l’utilisation de signets dans les consommateurs, consultez Utilisation de signets.
CRowset::MoveToRatio
Récupère les lignes à partir d’une position fractionnaire dans l’ensemble de lignes.
Syntaxe
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator,bool bForward = true) throw();
Paramètres
nNumerator
[in] Numérateur utilisé pour déterminer la position de fraction à partir de laquelle extraire des données.
nDenominator
[in] Dénominateur utilisé pour déterminer la position fractionnaire à partir de laquelle extraire des données.
bForward
[in] Indique s’il faut avancer ou reculer. La valeur par défaut est transférée.
Valeur de retour
HRESULT standard.
Notes
MoveToRatio
récupère des lignes en fonction de la formule suivante :
(nNumerator * RowsetSize ) / nDenominator
où RowsetSize
est la taille de l’ensemble de lignes, mesurée dans les lignes. La précision de cette formule dépend du fournisseur spécifique. Pour plus d’informations, consultez IRowsetScroll ::GetRowsAtRatio.
Cette méthode nécessite l’interface IRowsetScroll
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetScroll
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
CRowset::ReleaseRows
Appelle IRowset ::ReleaseRows pour libérer le handle de ligne actuel.
Syntaxe
HRESULT ReleaseRows() throw();
Valeur de retour
HRESULT standard.
CRowset::SetData
Définit des valeurs de données dans une ou plusieurs colonnes d’une ligne.
Syntaxe
HRESULT SetData() const throw();
HRESULT SetData(int nAccessor) const throw();
Paramètres
nAccessor
[in] Nombre d’accesseur à utiliser pour accéder aux données.
Valeur de retour
HRESULT standard.
Notes
Pour le SetData
formulaire qui n’accepte aucun argument, tous les accesseurs sont utilisés pour la mise à jour. Vous appelez SetData
généralement pour définir des valeurs de données dans des colonnes d’une ligne, puis appelez Update pour transmettre ces modifications.
Cette méthode nécessite l’interface IRowsetChange
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetChange
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
L’opération de paramètre peut échouer si une ou plusieurs colonnes ne sont pas accessibles en écriture. Modifier le mappage de votre curseur pour corriger ce problème.
CRowset::Undo
Annule les modifications apportées à une ligne depuis la dernière extraction ou mise à jour.
Syntaxe
HRESULT Undo(DBCOUNTITEM* pcRows = NULL,
HROW* phRow = NULL,
DBROWSTATUS* pStatus = NULL) throw();
Paramètres
pcRows
[out] Pointeur vers l’emplacement où Undo
retourne le nombre de lignes qu’il a tenté d’annuler si nécessaire.
phRow
[out] Pointeur vers l’emplacement où Undo
retourne un tableau de handles à toutes les lignes qu’il a tenté d’annuler si nécessaire.
pStatus
[out] Pointeur vers l’emplacement où Undo
retourne la valeur d’état de ligne. Aucun état n’est retourné si pStatus a la valeur Null.
Valeur de retour
HRESULT standard.
Notes
Cette méthode nécessite l’interface IRowsetUpdate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetUpdate
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
CRowset::Update
Transmet toutes les modifications en attente apportées à la ligne actuelle depuis la dernière extraction ou Update
appel.
Syntaxe
HRESULT Update(DBCOUNTITEM* pcRows = NULL,
HROW* phRow = NULL,
DBROWSTATUS* pStatus = NULL) throw();
Paramètres
pcRows
[out] Pointeur vers l’emplacement où Update
retourne le nombre de lignes qu’il a tenté de mettre à jour, si nécessaire.
phRow
[out] Pointeur vers l’emplacement où Update
retourne le handle de la ligne qu’il a tenté de mettre à jour. Aucun handle n’est retourné si phRow a la valeur Null.
pStatus
[out] Pointeur vers l’emplacement où Update
retourne la valeur d’état de ligne. Aucun état n’est retourné si pStatus a la valeur Null.
Valeur de retour
HRESULT standard.
Notes
Transmet toutes les modifications en attente apportées à la ligne actuelle depuis la dernière extraction ou mise à jour de cette ligne (à l’aide Update
ou UpdateAll). Vous appelez généralement SetData pour définir des valeurs de données dans des colonnes d’une ligne, puis appeler Update
pour transmettre ces modifications.
Cette méthode nécessite l’interface IRowsetUpdate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetUpdate
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
CRowset::UpdateAll
Transmet toutes les modifications en attente apportées à toutes les lignes depuis la dernière extraction ou Update
appel.
Syntaxe
HRESULT UpdateAll(DBCOUNTITEM* pcRows = NULL,
HROW** pphRow = NULL,
DBROWSTATUS** ppStatus = NULL) throw();
Paramètres
pcRows
[out] Pointeur vers l’emplacement où UpdateAll
retourne le nombre de lignes qu’il a tenté de mettre à jour, si nécessaire.
pphRow
[out] Pointeur vers la mémoire dans lequel UpdateAll
retourne le handle de la ligne qu’il a tenté de mettre à jour. Aucun handle n’est retourné si pphRow a la valeur Null.
ppStatus
[out] Pointeur vers l’emplacement où Update
retourne la valeur d’état de ligne. Aucun état n’est retourné si ppStatus a la valeur Null.
Notes
Transmet toutes les modifications en attente apportées à toutes les lignes depuis la dernière extraction ou mise à jour à l’aide de Update ou UpdateAll
. UpdateAll
met à jour chaque ligne qui a été modifiée, que vous disposiez toujours du handle pour eux (voir pphRow) ou non.
Par exemple, si vous avez utilisé Insert
pour insérer cinq lignes dans un ensemble de lignes, vous pouvez appeler Update
cinq fois ou appeler UpdateAll
une seule fois pour les mettre à jour.
Cette méthode nécessite l’interface IRowsetUpdate
facultative, qui peut ne pas être prise en charge sur tous les fournisseurs ; si c’est le cas, la méthode retourne E_NOINTERFACE. Vous devez également définir DBPROP_IRowsetUpdate
la valeur VARIANT_TRUE avant d’appeler Open
sur la table ou la commande contenant l’ensemble de lignes.
Valeur de retour
HRESULT standard.
Voir aussi
Exemple DBViewer
Exemple multiread
Exemple d’attributs multiread
Modèles du consommateur OLE DB
Référence des modèles du consommateur OLE DB