Partager via


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 IRowsetLocatefacultative, 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 IRowsetFindfacultative, 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 IRowsetScrollfacultative, 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 IRowsetUpdatefacultative, 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 IRowsetUpdatefacultative, 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 IRowsetChangefacultative, 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< 0

  • DBPROP_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 IRowsetLocatefacultative, 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

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 IRowsetScrollfacultative, 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 IRowsetChangefacultative, 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 IRowsetUpdatefacultative, 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 IRowsetUpdatefacultative, 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 IRowsetUpdatefacultative, 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