virtuel void Edit( );
jeter ( CDBException, CMemoryException );
Remarques
Appelez cette fonction membre pour permettre les modifications apportées à l'enregistrement en cours. Après que vous appelez Edit, vous pouvez modifier les données membres de champ en réinitialisant directement leurs valeurs. L'opération est terminée lorsque vous appelez ensuite la fonction membre Update pour enregistrer vos modifications dans la source de données.
&Notenbsp ; Si vous avez implémenté d'extraction de lignes en bloc, vous ne pouvez pas appeler Edit. Cela se traduira par une Échec assertion. Bien que la classe CRecordset ne fournit pas un mécanisme de mise à jour de lignes en bloc de données, vous pouvez écrire vos propres fonctions en utilisant la fonction API ODBC SQLSetPos. Pour obtenir un exemple de comment procéder, consultez l'exemple DBFETCH. Pour plus d'informations sur l'extraction de lignes en bloc, consultez l'article jeu d'enregistrements : extraction de dossiers en vrac (ODBC) dans le Guide du programmeur Visual C++.
Edit enregistre les valeurs des membres de données du jeu d'enregistrements. Si vous appelez Edit, apportez des modifications, puis appelez Modifier encore une fois, les valeurs de l'enregistrement sont restaurés dans ce qu'elles étaient avant le premier appel de Edit.
Dans certains cas, vous pouvez mettre à jour une colonne en la rendant nul (ne contenant aucuns données). Pour ce faire, appeler SetFieldNull avec un paramètre de valeur TRUE pour marquer le champ Null ; Cela entraîne aussi la colonne mise à jour. Si vous voulez un champ pour être écrites dans la source de données, même si sa valeur n'a pas changé, appelez SetFieldDirty avec un paramètre de TRUE. Cela fonctionne même si le champ a la valeur Null.
Si la source de données prend en charge les transactions, vous pouvez faire Modifier appeler le cadre d'une transaction. Notez que vous devez appeler CDatabase::BeginTrans avant d'appeler Modifier et après que le jeu d'enregistrements a été ouvert. Notez également que CDatabase::CommitTrans l'appel n'est pas un substitut pour mise à jour pour terminer l'opération de Modifier l'appel. Pour plus d'informations sur les transactions, consultez CDatabase , classe.
Selon le mode de verrouillage actuel, l'enregistrement mis à jour peut être verrouillée par le Modifier jusqu'à ce que vous appelez Update ou défilement à un autre enregistrement, ou il peut être verrouillé uniquement lors de l'appel de Edit . Vous pouvez modifier le mode de verrouillage avec SetLockingMode.
La valeur précédente de l'enregistrement actuel est rétablie si vous accédez à un nouvel enregistrement avant d'appeler Update. Une exception CDBException est levée si vous appelez Edit pour un jeu d'enregistrements ne peut pas être mis à jour ou si il n'y a aucun enregistrement en cours.
Pour plus d'informations, consultez les articles Transaction ((ODBC)) et jeu d'enregistrements : verrouillage enregistrements (ODBC) dans le Guide du programmeur Visual C++.
Exemple
/ / Exemple de CRecordset::Edit
/ / Pour modifier u&n enregistrement,
/ / Tout d'abord configurer le tampon d'édition
rsCustSet.Edit () ;
/ / Puis modifiez les données membres de champ de l'enregistrement
rsCustSet.m_dwCustID = 2795 ;
rsCustSet.m_strCustomer = « Jones Mfg » ;
/ / Enfin, terminer l'opération
Si (! rsCustSet.Update ())
nbsp ; / / Traiter le défaut de mise à jour
Aperçu de CRecordset |  ; Membres de la classe | Graphique de la hiérarchie
Voir aussinbsp ;CRecordset::Update, CRecordset::Add&New, CRecordset::Delete, CRecordset::SetFieldDirty, CRecordset::SetFieldNull, CRecordset::CanUpdate, CRecordset::CanTransact, CRecordset::SetLockingMode